【发布时间】:2019-07-10 19:45:38
【问题描述】:
我正在尝试使用 python 创建一个包含 N 个随机 (x,y,z) 点的列表,每个点与任何其他点的距离至少为 r。
我是编程的超级新手,到目前为止,我只能通过使用分别生成 x、y 和 z(然后放在一起)
import random
def RandX(start, end, num):
res = []
for j in range(num):
res.append(random.randint(start, end))
return res
num = N
start = 0
end = 100
print(RandX(start, end, num))
但我不知道如何控制或检查点 (x, y, z) 的位置,以使这些点彼此相距一定距离。
【问题讨论】:
-
首先这些不是
(x, y, z)点。您正在创建N号码列表。所以你需要把它做成一个三胞胎。其次,关于距离,使用已知的点间距公式,每次添加点时,确保与其他点的距离合适 -
Possoin 光盘采样在这里符合要求:scipython.com/blog/poisson-disc-sampling-in-python
标签: python