2015-04-18 27 views
0

我點pointA = (x1, y1)),我需要選擇隨機點pointB = (x2, y2)),使得之間的距離和B等於K如何以一定的距離選擇的隨機點到參考點

+0

[此答案] [1]有你在找什麼。 [1]:http://stackoverflow.com/a/929781/4805137 –

+0

【計算兩點之間的距離]的可能重複(http://stackoverflow.com/questions/929773/calculating-兩點之間的距離) – gioele

+0

這不是重複的。 –

回答

5

讓我們以極地形式解決。

我們需要這些雙打distance,x1y1

首先,我們要在弧度的角度:

double angle = Math.random()*2*Math.PI; 

然後我們想從我們的觀點x和y偏移:

double xOff = Math.cos(angle)*distance; 
double yOff = Math.sin(angle)*distance; 

然後,我們添加這些給我們的第一點:

double x2 = x1 + xOff; 
double y2 = y1 + yOff; 

這會讓你從你的第一點開始有一個特定的distance

-1

這是一個簡單的數學問題。

x2 = x1 - k + 2k*new Random().nextDouble() 

現在您可以計算出y2。