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 = (jk –kj)( 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は反時計回り回転ですが、その先にベクトルD(Bが2θ回転したもの)がありこれが逆回転してベクトル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 件のコメント:

コメントを投稿