私はあるオブジェクトと別のオブジェクトとの間で角度を計算する必要がある単純なフラッシュゲームを書いています。私はチェックして、変数は正しいと思われ、コサイン式の法則が正しいことを知っています。ただし、常に90度を返します。たぶん、あなたたちは何が間違っているかを見ることができます。ところで、私は基準点としてオブジェクトの代わりにマウスを使用しました。私の三角法は常に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);
}
シータ=隣接/斜辺ではありませんか? – DNA
acosのパラメータをデバッグします。 acos(0)== pi/2 == 90° – supertopi