我在算法上有两难选择。我正在尝试生成6个随机位置,它们之间有一定距离。我的算法有效,仅用于检查当前点和上一个点之间的距离。我需要的算法是验证所有点之间的距离,如果该距离小于指示的值,它将生成一个新位置。
xyz
感谢所有将提供建议的人。
答案 0 :(得分:1)
有什么问题吗?
“我需要这6个点,它们之间不仅要有一个距离,而且还要有到中心+半径的距离”
要实现这一点,您将必须生成球体上的点。为此,生成球体的中心点(如果需要的话),并定义半径。 然后,您需要使用随机球坐标(半径,randomAngle1,randomAngle2)。要将其转换为笛卡尔坐标,请使用
x =半径* cos(randomAngle1)* sin(randomAngle2)
y =半径* sin(randomAngle1)* sin(randomAngle2)
z =半径* cos(randomAngle1)
此后,您可以执行与重新生成新点相同的算法,直到它们彼此远离为止