2016-03-26 72 views
0

也許問題和簡單,但對我來說,與三角形總是緊張。 這應該是玩家的圓形進度條。 有一個圓圈,您需要計算從0到發生觸摸/點擊的點的角度。球員圈進度條

我發現這一點:

var degr:Number = (getAngle(centerX, centerY, touchX, touchY) * 180/Math.PI); 

private function getAngle (x1:Number, y1:Number, x2:Number, y2:Number):Number 
{ 
    var dx:Number = x2 - x1; 
    var dy:Number = y2 - y1; 
    return Math.atan2(dy,dx); 
} 

但它-180和從0到360

請共享0之間需要輸出從0到180的一側,另和我們一起思考。誰可以面對,任何人都可以有一個解決方案准備好了,我會很感激)

回答

1

因爲ATAN2返回正pi和負PI, 嘗試以下

var degr:Number = (getAngle(centerX, centerY, touchX, touchY)); 

function getAngle (x1:Number, y1:Number, x2:Number, y2:Number):Number 
{ 
    var radian:Number = Math.atan2(y2 - y1,x2 - x1); 
    var degree:Number = radian*(180/Math.PI); 
    return (degree > 0 ? degree : (360 + degree)); 
} 
+0

謝謝。確切需要什麼! –