ある点と別の点の間の角度を計算して返す関数を機能させることができました。これを関数と呼んでいます。これはlookAt
基本的に、ある変換が別の変換を参照するようにするためです。ここにあります:
this.lookAt = function(target) {
var d = target.subtract(this.position)
this.rotation = Math.atan2(d.y, d.x) + Math.PI/2;
return this.rotation;
}
この関数のコンテキストでは、 は変数(ラジアン単位の回転)this
を持つ周囲のオブジェクトを指し、いくつかの基本的な数学関数とストアと値を持つクラスです。は、変数 でヘルパー関数を呼び出すことによって作成されます。これは、別のものから 1 を減算します。rotation
position
Vector2
x
y
d
Vector2
target
Vector2
これは期待どおりに機能します。オブジェクトでこの関数を呼び出すと、回転はターゲットを正しく「見て」います。しかし、なぜ追加しなければならなかったのか知りたいですπ / 2
(これは 1 ラジアンですよね?)。この質問から元の方程式を取得しましたが、答えは方程式に追加されませんでしたが、追加π / 2
する必要があります。
誰かがこの背後にある数学を説明できますか? また、私はまだそれほど多くの三角法を習得していません (代数のコースで紹介されたものを除いて) ので、非常に小さな子供と話しているかのようにこれを説明してください. :-)