gpt4 book ai didi

math - 在环(环)内生成均匀随机点

转载 作者:行者123 更新时间:2023-12-04 15:46:24 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




8年前关闭。




Possible Duplicate:
Create random number within an annulus



我想在 annulus 内获得一个统一获得的随机点,即位于半径为 R1 的圆内的面积,但在半径为 R2 的圆之外,其中 R1 > R2并且两个圆都以同一点为中心。我想避免使用拒绝抽样。

如果可能,我希望解决方案类似于 this one - 用于计算圆内的随机点 - 我觉得它非常优雅和直观。也就是说,我也想避免使用平方根。

最佳答案

它很容易。使用极坐标,即为角度值 theta 生成一个随机值,为距原点的距离生成一个随机值。由于您的圈子都在同一个原点,这变得非常容易。

但注意:您可以通过均匀随机函数生成 theta 值,这很好,但是对于距离,您不能这样做,因为点将围绕原点聚集。
您必须考虑到圆的周长以 ^2 增长(您必须使用平方根的倒数)。

使用均匀分布的随机函数 rnd (0..1) 它会是这样的:

theta = 360 * rnd();
dist = sqrt(rnd()*(R1^2-R2^2)+R2^2);

编辑 :要转换为笛卡尔坐标,您只需计算:
x =  dist * cos(theta);
y = dist * sin(theta);

关于math - 在环(环)内生成均匀随机点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13064912/

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