算法:计算椭圆内的伪随机点

标签 algorithm math geometry

对于我正在制作的简单粒子系统,我需要给定一个具有宽度和高度的椭圆,计算位于该椭圆内的随机点 X、Y。

现在我的数学不是最好的,所以我想在这里问问是否有人能指出我正确的方向。

也许正确的方法是在宽度范围内随机选择一个 float ,取它作为X并从中计算出Y值?

最佳答案

  1. 在半径为 1 的圆内生成一个随机点。这可以通过在区间 [0, 2*pi) 中取一个随机角度 phi 来完成> 和区间 [0, 1) 中的随机值 rho 并计算

    x = sqrt(rho) * cos(phi)
    y = sqrt(rho) * sin(phi)
    

    公式中的平方根保证了圆内的均匀分布。

  2. xy 缩放到椭圆的尺寸

    x = x * width/2.0
    y = y * height/2.0
    

关于算法:计算椭圆内的伪随机点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5529148/

相关文章:

algorithm - 逆波兰表示法的简化算法

python - 在 Python 中求解数学函数

javascript - 为什么这个简单的椭圆旋转会旋转太多并扭曲尺寸?

python - 将 3D 椭球拟合到 3D 空间中的点 - 不同的方法,不同的答案

matlab - 如何在 MATLAB 中合并多个粘圆的结果

excel - 如何将这些代码块截断为一个嵌套的 for 循环?

algorithm - 提高算法思维

给定一个单词的算法返回从中删除成为回文字谜所需的最少字母数

javascript - 如何使用 Javascript 数学库计算直 Angular 三 Angular 形的 Angular ?

ios - 使用 arc4random() 在两个整数之间生成随机数