acos
0 と pi の間の値を与えるとしましょう。
s
からへのベクトルt
が と呼ばれるとしましょうu
。すでに計算したように、
acos((v . u)/(|v| * |u|))
角度を与えますalpha
。実際には、 1 つまたは他の方向に回転させるv
ことができます。u
alpha
おそらくこれは 2D で必要ですが、最初に 3D で説明します。
回転は、 と の両方に垂直なベクトルを中心とする必要がv
ありu
ます。このベクトルは、もちろん 2 つのクロス積です。u x v
例を見てみましょう:
/ v
/
/\ alpha
/ )
------------ u
この場合、u x v
モニターの外側に向かってベクトルを与えます。同時に、 と平行になるように反時計回りalpha
に配給を行う必要があることがわかります。v
u
つまり、3D では、に対して反時計回りに計算w = u x v
し、常に回転させるv
必要があります。または、 ( は)に対して時計回りに回転できます。alpha
w
v
alpha
-w
v x u
2D では、回転したいのですz
が、どちらの方向かわかりません。上記と同じ方法を適用できます。
- コンピューティング
w = u x v
- z が正の場合
w
(x と y はゼロになります)
- 次に、
v
反時計回りに回転させる必要があります。
- それ以外の場合は、
v
時計回りに回転する必要があります。