2010-08-05 59 views
5

我试图找出一个算法来找到离基点一定距离的随机点。因此,例如:从基点离开一定距离绘制一个点

alt text http://i34.tinypic.com/2e4vxao.png

这可能仅仅是基本的数学,我的大脑还没有成型(原谅我,还没有我的咖啡还没有:)),但我一直在努力工作,这一点在纸上,我没有得到任何地方。角度α从0至2 * PI

x = xc + R*cos(a); 
y = yc + R*sin(a); 

变更值可以找到关于圆周方向的任意一点:

回答

10

点的上圆半径为R和中心(XC,YC)坐标。

1

基本毕达哥拉斯。

选取0到50之间的随机数,然后求解h^2 = a^2 + b^2 在方向上添加一些随机的descisions。

+1

应该指出的是,这将不会给出正在均匀地分布在多数人的期待的方式回答。相反,这种方法(例如在单位圆上使用)将倾向于稍微偏向(1,0)和(-1,0)(或(0,1)和(0,-1)附近的点,这取决于你执行它)。 – 2010-08-05 18:27:23

+0

@彼得 - 好点。我相信密度应该是sin()或cos()。 – ysap 2010-08-05 21:14:33

5

使用垂直角度作为随机输入。

伪代码:

angle = rand(0,1) 
x = cos(angle * 2 * pi) * Radius + x_centre 
y = sin(angle * 2 * pi) * Radius + y_centre 
相关问题