改变Δ角径向坐标系时出错

时间:2014-01-16 12:34:37

标签: actionscript-3

我觉得这可能是在这里被问到/回答了,如果有的话,我为带宽道歉,但我没有看到任何解释。 问题如下: 我有3分.1点(目标)移动2点(指针)。 3点(船)转到1(目标)。我需要在角度α<90度(Math.PI / 2)2点(指针)沿相反方向改变。

谢谢!

function MovePointer(ship:Object, targ:Object, point:Object, R:Number, DAngle:Number):Number
{
    var angle = Math.atan2(point.y - targ.y, point.x - targ.x);

    if ( Math.abs( Math.PI-( angle - (Math.PI+Math.atan2(ship.y - targ.y, ship.x - targ.x)) ) ) < Math.PI/2 )
    {
            DAngle=-DAngle;
    }

    angle += DAngle;


    point.x = targ.x + R * Math.cos(angle);
    point.y = targ.y + R * Math.sin(angle);

    return DAngle;
}

1 个答案:

答案 0 :(得分:0)

计算角度和旋转应该离开你的

 const product : Number = (point.y - targ.y) * (ship.y - targ.y) + (point.x - targ.x) *  (ship.x - targ.x);
if (product > 0) {
DAngle = -DAngle;
}