半径随机点

时间:2018-11-23 13:38:32

标签: c# unity3d

我在算法上有两难选择。我正在尝试生成6个随机位置,它们之间有一定距离。我的算法有效,仅用于检查当前点和上一个点之间的距离。我需要的算法是验证所有点之间的距离,如果该距离小于指示的值,它将生成一个新位置。

xyz

感谢所有将提供建议的人。

1 个答案:

答案 0 :(得分:1)

有什么问题吗?

“我需要这6个点,它们之间不仅要有一个距离,而且还要有到中心+半径的距离”

要实现这一点,您将必须生成球体上的点。为此,生成球体的中心点(如果需要的话),并定义半径。 然后,您需要使用随机球坐标(半径,randomAngle1,randomAngle2)。要将其转换为笛卡尔坐标,请使用

x =半径* cos(randomAngle1)* sin(randomAngle2)

y =半径* sin(randomAngle1)* sin(randomAngle2)

z =半径* cos(randomAngle1)

此后,您可以执行与重新生成新点相同的算法,直到它们彼此远离为止