Я пишу простую флеш игру, для которой требуется вычислить угол между одним объектом и другим. Я проверил, и мои переменные кажутся правильными, и я знаю, что моя формула закона косинусов верна. Тем не менее, он всегда возвращает 90 градусов. Может быть, вы, ребята, видите, что с этим не так. Кстати, я использовал мышь вместо объекта в качестве контрольной точки.
onClipEvent (enterFrame) {
var xdiff:Number = Math.abs(_root._xmouse - this._x);
var ydiff:Number = Math.abs(_root._ymouse - this._y);
var xd2:Number = xdiff * xdiff;
var yd2:Number = ydiff * ydiff;
var hypot:Number = Math.sqrt(xd2+yd2);
var angle:Number = Math.acos((xd2 + yd2 - hypot * hypot) / (2*xdiff * ydiff))*180/Math.PI ;
trace("xdiff:"+xdiff);
trace("ydiff:"+ydiff);
trace("xd2:"+xd2);
trace("yd2:"+yd2);
trace("hypot:"+hypot);
trace(angle);
}