gpt4 book ai didi

python - 在圆柱体表面生成随机点

转载 作者:太空狗 更新时间:2023-10-30 01:29:37 24 4
gpt4 key购买 nike

我想在圆柱体表面生成随机点,使点之间的距离在 230 到 250 之间。我使用以下代码在圆柱体表面生成随机点:

import random,math
H=300
R=20
s=random.random()
#theta = random.random()*2*math.pi
for i in range(0,300):
theta = random.random()*2*math.pi
z = random.random()*H
r=math.sqrt(s)*R
x=r*math.cos(theta)
y=r*math.sin(theta)
z=z
print 'C' , x,y,z

如何生成随机点,使它们落在范围内(在圆柱体表面)?

最佳答案

这不是一个完整的解决方案,但应该有所帮助。如果您将圆柱体的表面“展开”成宽度 w=2*pi*r 和高度 h 的矩形,则可以简化查找点之间距离的任务。您还没有解释如何测量圆柱体顶部和侧面的点之间的“沿表面的距离”——这是一个有点棘手的几何学。

至于在我们创建人工“接缝”时计算沿表面的距离,只需同时使用 (x1-x2) 和 (w -x1+x2) - 取较短的距离就是您想要的。

我确实认为@VincentNivoliers 使用泊松圆盘采样的建议非常好,但是在 h=300 和 r=20 的约束下,无论如何你都会得到糟糕的结果。

关于python - 在圆柱体表面生成随机点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15811027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com