2014-01-15 38 views
0

圖片很可能是最好的我怎樣才能找到P2,而我只有P1,角度和距離單位

enter image description here

我的目標是要找到在比賽中我想提出一個球員未來的一步。玩家在(x1,y1),步行距離是7,方向/角度是53.下一個點(x2,y2)是什麼?

如何在圖表上找到point2(x2,y2)如果我有:angle/direction和distance to go?

這裏是我試過至今:

x1 =-5; 
y1 = -3; 
x2 = 7; 
y2 = 5; 
r = 7; 
deltaY = y1 - y2; 
deltaX = x1 - x2; 

/* Finding the angle */ 
angleInDegrees = Math.atan2(deltaY, deltaX) * 180/Math.PI; 

/* Finding destination point (x2,y2) */ 
desTx = r * Math.cos(angleInDegrees)+x1; 
desTy = r * Math.sin(angleInDegrees)+y1; 

您還可以查看我在做的小提琴:http://jsfiddle.net/chLTK/7/

你可以看到線是不是在正確的方向 - 在理想情況綠線將繼續與p1和p2相同的方向。

回答

1

如何在圖表上找到point2(x2,y2)如果我有:angle/direction和 的距離嗎?

你可以試試:

/// angle in radians 
function lineToAngle(x, y, length, angle) { 

    var x2 = x + length * Math.cos(angle), 
     y2 = y + length * Math.sin(angle); 

    return [x2, y2]; 
} 

如果你輸入一個計算的角度第一然後改變你計算增量的方式:

deltaY = y2 - y1; 
deltaX = x2 - x1; 

Math.cos()Math.sin()需要弧度的角度,唐't將atan2()結果轉換爲度數:

angleInRadians = Math.atan2(deltaY, deltaX); 

desTx = r * Math.cos(angleInRadians)+x1; 
desTy = r * Math.sin(angleInRadians)+y1; 
+0

剛剛嘗試沒有更改檢查http://jsfiddle.net/chLTK/9/我已更新更改 –

+0

@NetaMeta如果先計算角度,然後嘗試在您的三角洲中將x1-x2切換爲x2-x1等。 Math.cos/sin必須以弧度表示角度,所以不需要先將atan2結果轉換爲度數 – K3N

+0

與那些一起玩,沒有產生期望的結果 –