圈子进度条为球员

时间:2016-03-26 09:20:25

标签: actionscript-3 trigonometry

也许问题很简单,但不适合我,三角测量总是很紧张。 这应该是玩家的圆形进度条。 有一个圆圈,您需要计算从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);
}

但它在0到180的一侧输出,另一侧在-180和0之间输出。需要从0到360.

请与我们分享他的想法。谁可以面对,任何人都可以准备好解决方案,我将不胜感激)

1 个答案:

答案 0 :(得分: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));
}