gpt4 book ai didi

math - 在圆柱体中生成随机点

转载 作者:行者123 更新时间:2023-12-01 01:06:08 25 4
gpt4 key购买 nike

如果给定圆柱体的半径 r 和高度 h,在圆柱体内生成随机 3d 点 [x,y,z] 的最佳方法或算法是什么?

最佳答案

如何——在 Python 伪代码中,令 R 为半径,H 为高度:

s = random.uniform(0, 1)
theta = random.uniform(0, 2*pi)
z = random.uniform(0, H)
r = sqrt(s)*R
x = r * cos(theta)
y = r * sin(theta)
z = z # .. for symmetry :-)

简单地采用 x = r * cos(angle)y = r * sin(angle) 的问题是当 r 很小时,即在圆心,r 的微小变化不会对 x 和 y 位置产生太大影响。 IOW,它导致笛卡尔坐标中的分布不均匀,并且点集中在圆心。取平方根可以纠正这个问题,至少如果我的算术正确的话。

[啊,看起来像 sqrt was right .]

(请注意,我没有考虑就假设圆柱体与 z 轴对齐并且圆柱体中心位于 (0,0,H/2)。设置 (0, 0,0) 在圆柱中心,在这种情况下,z 应选择在 -H/2 和 H/2 之间,而不是 0,H。)

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

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