2015-11-03 58 views
0

我有:計算從起點,具有用於所有象限距離和角度座標

private double AngleToRadians(double angle) 
{ 
    return (Math.PI/180) * angle; 
} 


double x = 30, y = 60; 
var dist = 10; 
var angle = 120; 

x = x + dist * Math.Cos(AngleToRadians(angle)); 
y = y + dist * Math.Sin(AngleToRadians(angle)); 

這樣做是返回我一個新的座標,10分成從方向(角度)(X,Y)初始點。

這適用於正確的右上象限,但不在任何其他三個。

是否有一個公式可以在所有4中工作?

+4

它是如何失敗?公式對我來說很好。 –

+0

它僅適用於右上象限。它在任何其他方面失敗,可能是40 *關閉或什麼的。 – user2818626

+0

'AngleToRadians'是否正常工作?你可以包含該代碼嗎? – ryanyuyu

回答

0

x = x + dist * Math.Cos(AngleToRadians(angle)); y = y + dist * Math.Sin(AngleToRadians(angle));

看來你使用的是相同的x和兩個中央點和結束點y的變量,因此中心的座標更新每次

只需使用x0, y0爲中心,x, y作爲結束點

x = x0 + dist * Math.Cos(AngleToRadians(angle));