对于我正在制作的一个简单的粒子系统,我需要,给定一个有宽度和高度的椭圆,计算位于该椭圆上的一个随机点X,Y。
现在我的数学不是最好的,所以我想问一下,有没有人能给我指个方向。
也许正确的方法是在宽度范围内选择一个随机浮点数,取它作为X,并由此计算出Y值?
发布于 2011-04-03 19:04:18
[0, 2*pi)中取一个随机角度phi和在区间[0, 1)中取一个随机值rho来完成,然后计算X= sqrt(rho) * cos(phi) y= sqrt(rho) * sin(phi)
公式中的平方根确保了圆内的均匀分布。
x和y到椭圆的尺寸X=x*宽度/2.0 y=y*高度/2.0
发布于 2011-04-03 19:17:11
使用rejection sampling:在椭圆周围的矩形中选择一个随机点。通过检查(x-x0)^2/a^2+(y-y0)^2/b^2-1的符号来测试点是否在椭圆内。如果该点不在内部,请重复此步骤。(假设椭圆与坐标轴对齐。(类似的解决方案适用于一般情况,但当然更复杂。)
https://stackoverflow.com/questions/5529148
复制相似问题