3次元回転行列と四元数

  • 単位四元数q = \cos{\theta/2} \times \mathbf{1} + \sin{\theta/2} \times (x \mathbf{i} + y \mathbf{j} + z \mathbf{k});x^2+y^2+z^2=1 を用いると、3次元空間のベクトルv=(v_x,v_y,v_z)を軸(x,y,z)の周りに角$\theta$で回転してできるベクトルv'=(v_x',v_y',v_z')
  • v_x' \mathbf{i} + v_y' \mathbf{j} + v_z' \mathbf{k} = q \times (v_x \mathbf{i} + v_y \mathbf{j} + v_z \mathbf{k}) \bar{q}
  • ただし、\bar{q}=conj(q) = \cos{\theta/2} \times \mathbf{1} - \sin{\theta/2} \times (x \mathbf{i} + y \mathbf{j} + z \mathbf{k})で得られる。
  • この回転はもちろん、3x3行列でも表せる
  • 今、q = A + iB + jC +kDとすると、その行列は
  • \left( \begin{array}{lll} A^2+B^2-C^2-D^2 & 2(-AD+BC) & 2(AC+BD) \\ 2*(A*D+B*C) & A^2-B^2+C^2-D^2 & 2*(-A*B+C*D) \\ 2*(-A*C+B*D) & 2*(A*B+C*D) & A^2-B^2-C^2+D^2) \end{array} \right )