たとえば、acos
とすると、0〜piの値が与えられます。
s
からt
までのベクトルをu
としましょう。既に計算されているとおり、alpha
と計算されていますので、alpha
と計算されています。alpha
実際には、v
はu
になり、alpha
で一方向または他の方向に回転できます。
これはおそらく2Dで必要になるかもしれませんが、まず3Dで作業します。
回転は、v
とu
の両方に垂直なベクトルの周りにする必要があります。このベクターは、もちろん2の外積である:u x v
の例を見てみましょう:この場合
/v
/
/\ alpha
/)
------------ u
、u x v
は、お使いのモニタの外に向けたベクトルを与えます。同時に、alpha
の配当はの反時計回りに、u
にはv
を平行にする必要があることがわかります。
つまり、3Dではw = u x v
を計算し、w
に関してはで常にv
を回転させる必要があります。または-w
(v x u
)に対してをalpha
時計回りに回すこともできます。
2Dでは、あなたはz
の周りを回転したいと思うし、あなたはどちらの方向がわからないと思います。あなたは、上記と同様の方法を適用することができる:
- 計算は、
w = u x v
w
次いで正のz(xとyはゼロとなる)
- を有する場合、
v
が反時計回りに回転しなければなりません。
- else、
v
は時計回りに回転する必要があります。
http://stackoverflow.com/questions/2150050/finding-signed-angle-between-vectors – moowiz2020
moowiz2020が言うように、これは正確な複製です。 – tom10
ああ、ありがとう、探している間にそれを見つけられなかったtho; s – Skeen