2012-02-15 2 views
0

私はあるオブジェクトと別のオブジェクトとの間で角度を計算する必要がある単純なフラッシュゲームを書いています。私はチェックして、変数は正しいと思われ、コサイン式の法則が正しいことを知っています。ただし、常に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); 

}

+0

シータ=隣接/斜辺ではありませんか? – DNA

+0

acosのパラメータをデバッグします。 acos(0)== pi/2 == 90° – supertopi

答えて

1

XD2 +平方ヤードではありません - (0)90

コスあるので、ACOS常にゼロになるだろう関数hypot *関数hypot

は、「あなたを想定し、その斜辺/隣接しており、

ACOS(あるXdiff /関数hypot)

はあなた180/PIとラジアンへ変換次いで、2つのオブジェクト間の直線の傾きを算出する再。

+0

のように0に等しいかどうかをチェックします。ありがとう! –

1

それはあなた二つのオブジェクトの間の角度に何を意味するのでしょうか?

角度は2行で計算できます。 xの側とyの直角三角形の間の角度を計算しています。これは常に90度です。

関連する問題