0

我试图四处寻找解决此类问题的方法,但找不到。于是我想到了问。

问题:

我有一个中心,我想在圆的圆周上找到一个点。现在的限制是,我想靠近“玩家位置”。玩家的位置可以在距离中心的任何位置,并且始终小于距离中心的半径“r”。现在,正如我所说的“接近”,我想简要介绍一下。让一个圆圈除以四边形。如果玩家位于第一四边形,则圆周上第三四边形之外的任何点都是好的。

我希望我很清楚。

问题的图像表示在这里

图像说明: 考虑到上图,假设圆的半径为“r”,玩家位于“Pl”处。现在只是随机的,我想在'x'(红色)附近的任何地方获得一个Vector2 坐标。同样在这里,它们是高度任意的,但它们在相邻的四边形内。所需的坐标是vector2 坐标。

非常感谢您!!!

问候,

卡尔斯嫩

4

1 回答 1

0

在极坐标中,您只需计算所考虑区域中的随机角度(由于玩家的位置)

例如,玩家的位置在极坐标中类似于 (R,theta),您可以为您搜索的位置的角度生成一个随机值,-pi并将pi其添加到玩家位置的角度 theta。或者,如果您真的想根据那些“四边形”执行此操作:如果玩家在第一个四边形中,则计算一个介于-pi/2和之间的随机值pi,如果玩家在第二个四边形中,则计算一个介于0和之间的随机值3pi/2,依此类推..

在此之后,您只需转换为笛卡尔坐标。

于 2012-11-21T19:59:55.510 回答