2010-08-05 102 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 
相關問題