2017-02-01 15 views
-1

私はGLSLで作業しています.2つの2Dベクトル間の角度を高速かつ効率的に計算する必要があります。GLSLの2つのベクトル間の角度の計算

たとえば、(30,20)と(50,50)の2つのvec2ベクトルが与えられたとき、それらの間の角度を計算する必要があります。

これは正しく私に角度を与えているように見えませんが、私は現在、

acos(dot(vector1, vector2)); 

を使用しています。私は何か間違っているのですか?これは正しい機能ですか?

答えて

7

ベクトルドット積は、2つのベクトルの間の角度の余弦、scaled by the length of both vectorsを計算します。ちょうど角度を取得したい場合は、ドットプロダクトを実行する前に両方のベクトルを正規化する必要があります。

+0

私が疑っていたように、簡単な間違いは、修正のための歓声。 – Mapboy

1

のみ内積は、彼らが単位ベクトルでなくても、あなたに2つのベクトル間の角度についてのいくつかの非常に大まかな情報を提供します:

  • 内積が0の場合、ベクトルは90度離れています(直交または垂直)。
  • ドット積が0より小さい場合、ベクトルは90度以上離れています。
  • ドット積が0より大きい場合、ベクトルは90度未満離れています。
+0

これはとても役に立ちます! –

関連する問題