(c)1997 Jun Mizutani
[1] QuaternionとはQuaternionは数学的には複素数の拡張で
qa = a0 + a1i + a2j + a3k
として表現されます.q = [ q0, ( q1, q2, q3 ) ] と書くこともできます.
Quaternion q の共役(conjugation)をqと記述すると
q = [ q0, -( q1, q2, q3 ) ] と定義されます.
Quaternion q の絶対値は |q| = sqrt( q02 + q12 + q22 + q32 )
となり,絶対値が1のQuaternionを単位Quaternionと呼びます.
単位Quaternionの場合,q = 1/q の関係が成立します.
虚数部(ベクトル部)の i, j, k の積は以下の関係にあります.
ij = k = -jk , i2 = -1
jk = i = -kj , j2 = -1
ki = j = -ik , k2 = -1
ijk = -1
単位Quaternion を [w, ( x, y, z ) ] とした場合,ベクトル(x, y, z)を軸としたwの回転を表現することができます.
単位ベクトル u を軸として,角度 2t回転させる場合,quaternion として [cos t, u sin t ] を作る必要があります.
quaternion q は,直接,ベクトル v と quaternionの積に使用してベクトル vを回転させることができます.
v' = q v q
また, quaternion を 3x3 変換行列 M に変換することもできます.
もし quaternion q の要素が [ w, (x,y,z) ] の時, 変換行列は
M =
{ 1-2(yy + zz), 2(xy - wz), 2(xz + wy)} { 2(xy + wz), 1-2(xx + zz), 2(yz - wx)} { 2(xz - wy), 2(yz + wx), 1-2(xx + yy)}となります.