对于我正在制作的简单粒子系统,我需要给定一个具有宽度和高度的椭圆,计算位于该椭圆内的随机点 X、Y。
现在我的数学不是最好的,所以我想在这里问问是否有人能指出我正确的方向。
也许正确的方法是在宽度范围内随机选择一个 float ,取它作为X并从中计算出Y值?
最佳答案
在半径为 1 的圆内生成一个随机点。这可以通过在区间
[0, 2*pi)
中取一个随机角度phi
来完成> 和区间[0, 1)
中的随机值rho
并计算x = sqrt(rho) * cos(phi) y = sqrt(rho) * sin(phi)
公式中的平方根保证了圆内的均匀分布。
将
x
和y
缩放到椭圆的尺寸x = x * width/2.0 y = y * height/2.0
关于算法:计算椭圆内的伪随机点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5529148/