2012年3月18日日曜日

4元数と回転

ベクトルの回転公式はコンピュータグラフィックスをする方はご存知の方も多いと思いますが、
ロドリグの公式では A(軸),B(回転させるベクトル)は単位ベクトル)
C=Bcosθ+A<A , B>(1-cosθ) - (B×A)sinθ  または
C= A<A,B>+(B- A<A , B>)cosθ - (B×A)sinθ
にあるようにクロス積で直交を出して軸回りにcos(θ)sin(θ)の組み合わせで回転させています。

ロドリグの公式から
1 Bcosθ - (B×A)sinθを抜き出すとどうなるでしょうか?

これは下図に示すように楕円回転のベクトル式になり、演算規則はクロス積ですから対応は  ( i , j , k ) = ( jk - kj , ki ik , ij – ji ) 
ij = –ji = k  ,   jk = –kj = i  ki = –ik = j 

代数的に総積でき、結合則があると拡張すると
k = ij = (jkkj)( ki ik) = jkki – jkik – kjki + kjik = jkki – jjk – kii – kkk
なので kk = jj = ii = 1 となります。これは内積(符号は逆)になります。

したがって式1 代数的に出すと
式2: B * A = B * [cosθ Asinθ]  =    Bcosθ – (< B , A >  + (B×A )sinθ)
=  < B , A > + [Bcosθ (B×A)sinθ] 内積分(スカラ)が増えて計算されます。

2は反時計回り回転ですが、その先にベクトルDB2θ回転したもの)がありこれが逆回転してベクトルCになるとします。
式3 C =  A * D =  [cosθ Asinθ] D = Dcosθ  – (< A , D > + (A×D)sinθ)
 = < A , D > + [Dcosθ (A×D)sinθ]

式2と3をみてみると 軸との内積は同心円上にあるので同じです。ベクトルは逆回転になっています。したがって
C =  A * D = B * A  となるので Aの逆演算 {A}とすると {A} = 1 / A なるものがあればDが求まるわけです。 これは式2と同じ要領で計算すると
4  {A} = 1 / A = 1 / (cosθ – A sinθ) = cosθ + A sinθ となります。

なのでD
式5: D = {A} * B * A     となります、回転角は2θ。

しかし、ほんと4元数って機械みたいですね。

0 件のコメント:

コメントを投稿