(注意 : 本節の内容はロドリゲスの回転公式を使わずに、任意軸周りの回転行列を導出するというものであるが、その実質的な内容は面倒な計算をするだけであり、特に重要な事柄が含まれているわけではない。単に任意軸回転行列を導出するだけならばロドリゲスの公式を使う方がずっと簡単であり、その詳細についてもインターネット上の多くのサイトで解説されているので、回転行列の導出だけに関心があるのであれば回転公式を使った解説を読むだけで十分である。本節の内容を読む必要はない)
3-10節の課題で述べたように基本軸周りの回転を組み合わせることで、任意軸回転を表現することができる。まずそこで述べたことを簡単に復習する。
下図の点 $P$ の位置にある球体を軸 $m$ の周りに角度 $\theta$ 回転させるとしよう。ここで $0 \leq \alpha < 2\pi$、$0 < \beta < \pi$ とし、軸 $m$ のXZ平面上の像と x軸とのなす角を $\alpha$、軸 $m$ と y軸とのなす角を $\beta$ とする (図2 ; $\beta$ が $0$ あるいは $\pi$ のときは単なる y軸周りの回転である)。
このとき軸 $m$ の方向を表す
単位ベクトルを $(x,\ y,\ z)$ とすれば\[ (x,\ y,\ z) = (\cos\alpha\sin\beta,\ \cos\beta,\ -\sin\alpha\sin\beta) \tag{1}\]である (単位ベクトルであるから $x^2 + y^2 + z^2 = 1$)。
図1 軸 $m$ 周りに角度 $\theta$ 回転させる
図2 軸 $m$ と y軸とのなす角は $\beta$、軸 $m$ のXZ平面の像と x軸とのなす角は $\alpha$ ($0 \leq \alpha < 2\pi$、$0 < \beta < \pi$) 始めの段階で軸 $m$ が y軸に重なっていたと仮定しその状態から図1の向きにするには、まず z軸周りに $-\beta$ の回転、次に y軸周りに $\alpha$ の回転を行えばよい (3-4節参照)。それぞれの回転行列を $R_z$、$R_y$ とすれば、y軸に重なった状態から図1の向きにするためには軸 $m$ に対して $R_yR_z$ を掛ければよいわけである。逆に図1の状態から y軸に重なった状態にするためには軸 $m$ に対して $(R_yR_z)^{-1} = {R_z}^{-1}{R_y}^{-1}$ を掛ければよいわけである。
基本軸周りの回転のみを用いた任意軸回転の処理の流れは次のようなものである。
図3 基本軸のみを用いた任意軸回転 上の処理はまず軸 $m$ を y軸に一致させる回転を行い、次に y軸周りに角度 $\theta$ の回転、最後に軸 $m$ を元の位置に戻す回転の順で行われる。y軸周りの角度 $\theta$ の回転を $R_{\theta}$ で表し、 先程の $R_y$、$R_z$ 及びこの $R_{\theta}$ を用いれば上記の処理は具体的には\[ R_yR_zR_{\theta}{R_z}^{-1}{R_y}^{-1} \tag{2}\]として表される。この5個の回転行列の積が軸 $m$ の周りの角度 $\theta$ の回転を表すということであるが、以下実際にそれを確かめよう。
$0 \leq \alpha < 2\pi$、$0 < \beta < \pi$ としたとき、$R_y$ は y軸周りの $\alpha$ の回転、$R_z$ は z軸周りの $-\beta$ の回転であったから、それぞれ
\[ R_y = \begin{pmatrix}\cos\alpha &0 &\sin\alpha\\0 &1 &0\\-\sin\alpha &0 &\cos\alpha\\\end{pmatrix}\qquad\qquad R_z = \begin{pmatrix}\cos\beta &\sin\beta &0\\-\sin\beta &\cos\beta &0\\0 &0 &1\end{pmatrix}\]
である。$R_yR_z$ を計算すると、 \begin{align*}R_yR_z &= \begin{pmatrix}\cos\alpha &0 &\sin\alpha\\0 &1 &0\\-\sin\alpha &0 &\cos\alpha\\\end{pmatrix}\begin{pmatrix}\cos\beta &\sin\beta &0\\-\sin\beta &\cos\beta &0\\0 &0 &1\end{pmatrix} \\\\&=\begin{pmatrix}\cos\alpha\cos\beta &\cos\alpha\sin\beta &\sin\alpha \\-\sin\beta &\cos\beta &0 \\-\sin\alpha\cos\beta &-\sin\alpha\sin\beta &\cos\alpha\end{pmatrix} \\\\\end{align*}となるが、上記 (1) の $(x,\ y,\ z) = (\cos\alpha\sin\beta,\ \cos\beta, -\sin\alpha\sin\beta)$ を用いることで、この行列の各成分を次のように書き換えることができる (ただし以下では $S = \sin\beta$ としている)。
\[R_yR_z = \begin{pmatrix}\cos\alpha\cos\beta &\cos\alpha\sin\beta &\sin\alpha \\-\sin\beta &\cos\beta &0 \\-\sin\alpha\cos\beta &-\sin\alpha\sin\beta &\cos\alpha\end{pmatrix} =\begin{pmatrix}\Large\frac{xy}{S} &\large x &\Large\frac{-z}{S} \\-S &\large y &0 \\\Large\frac{yz}{S} &\large z &\Large\frac{x}{S} \end{pmatrix} \tag{3}\]
${R_z}^{-1}{R_y}^{-1}$ はこの逆行列(回転行列の逆行列)であるから、単に転置して\[{R_z}^{-1}{R_y}^{-1} = \begin{pmatrix}\Large\frac{xy}{S} &\normalsize -S &\Large\frac{yz}{S} \\\large x &\large y &\large z \\\Large\frac{-z}{S} &0 &\Large\frac{x}{S}\end{pmatrix} \tag{4}\]として求められる。
$R = R_yR_zR_{\theta}{R_z}^{-1}{R_y}^{-1}$ とすれば (3)、(4) より
\begin{align*}R &= (R_yR_z)R_{\theta}({R_z}^{-1}{R_y}^{-1}) \\\\&= \begin{pmatrix}\Large\frac{xy}{S} &\large x &\Large\frac{-z}{S} \\-S &\large y &0 \\\Large\frac{yz}{S} &\large z &\Large\frac{x}{S} \end{pmatrix} \normalsize\begin{pmatrix}\cos\theta &0 &\sin\theta\\0 &1 &0\\-\sin\theta &0 &\cos\theta\\\end{pmatrix}\begin{pmatrix}\Large\frac{xy}{S} &\normalsize -S &\Large\frac{yz}{S} \\\large x &\large y &\large z \\\Large\frac{-z}{S} &0 &\Large\frac{x}{S}\end{pmatrix} \\\\&= \begin{pmatrix}\Large\frac{xy}{S} &\large x &\Large\frac{-z}{S} \\-S &\large y &0 \\\Large\frac{yz}{S} &\large z &\Large\frac{x}{S} \end{pmatrix} \begin{pmatrix}\Large\frac{xy\cos\theta - z\sin\theta}{S} &\normalsize -S\cos\theta &\Large\frac{yz\cos\theta + x\sin\theta}{S} \\\large x &\large y &\large z \\\Large\frac{-xy\sin\theta - z\cos\theta}{S} &\normalsize S\sin\theta &\Large\frac{-yz\sin\theta + x\cos\theta}{S} \end{pmatrix} \end{align*}
であるが、この最後の積の結果がロドリゲスの回転公式から導出された以下の行列
\[\begin{pmatrix}x^2(1-\cos\theta) + \cos\theta &xy(1-\cos\theta) - z\sin\theta &xz(1-\cos\theta) + y\sin\theta \\xy(1-\cos\theta) + z\sin\theta &y^2(1-\cos\theta) + \cos\theta &yz(1-\cos\theta) - x\sin\theta \\xz(1-\cos\theta) - y\sin\theta &yz(1-\cos\theta) + x\sin\theta &z^2(1-\cos\theta) + \cos\theta \end{pmatrix}\tag{5}\]
の各成分と同じ値になることが示されればよいわけである。
ここで $R$ を\[R = \begin{pmatrix}r_{00} &r_{01} &r_{02} \\r_{10} &r_{11} &r_{12} \\r_{20} &r_{21} &r_{22} \end{pmatrix}\]と置いて、上記の積の各成分を1つずつ計算する (ただし以下の計算では $S^2 = \sin ^2\beta = 1 - \cos ^2\beta = 1 - y^2$ であること、及び $x^2 + y^2 + z^2 = 1$ であることに注意)。
\begin{align*}r_{00} &= \frac{xy}{S}\left(\frac{xy\cos\theta - z\sin\theta}{S}\right) + x^2 - \frac{z}{S}\left(\frac{-xy\sin\theta - z\cos\theta}{S}\right) \\\\&= \frac{x^2y^2 + z^2}{S^2}\cos\theta + \frac{xyz - xyz}{S^2}\sin\theta + x^2 \\\\&= \frac{x^2y^2 + 1 - x^2 - y^2}{1 - y^2}\cos\theta + x^2 = \frac{x^2(y^2 - 1) + (1 - y^2)}{1 - y^2}\cos\theta + x^2 \\\\&= x^2(1 - \cos\theta) + \cos\theta \\\\\\r_{10} &= -xy\cos\theta + z\sin\theta + xy = xy(1 - \cos\theta) + z\sin\theta \\\\\\r_{20} &= \frac{yz}{S}\left(\frac{xy\cos\theta - z\sin\theta}{S}\right) + xz + \frac{x}{S}\left(\frac{-xy\sin\theta - z\cos\theta}{S}\right) \\\\&= \frac{xy^2z - xz}{S^2}\cos\theta - \frac{yz^2 + x^2y}{S^2}\sin\theta + xz \\\\&= \frac{xz(y^2 - 1)}{1 - y^2}\cos\theta - \frac{y(1 - y^2)}{1 - y^2}\sin\theta + xz \\\\&= xz(1 - \cos\theta) - y\sin\theta \\\\\\r_{01} &= -xy\cos\theta + xy - z\sin\theta = xy(1 - \cos\theta) - z\sin\theta \\\\\\r_{11} &= S^2\cos\theta + y^2 = (1 - y^2)\cos\theta + y^2 = y^2(1 - \cos\theta) + \cos\theta \\\\\\r_{21} &= -yz\cos\theta + yz + x\sin\theta = yz(1 - \cos\theta) + x\sin\theta \\\\\\r_{02} &= \frac{xy}{S}\left(\frac{yz\cos\theta + x\sin\theta}{S}\right) + xz - \frac{z}{S}\left(\frac{-yz\sin\theta + x\cos\theta}{S}\right) \\\\&= \frac{xy^2z - xz}{S^2}\cos\theta + \frac{x^2y + yz^2}{S^2}\sin\theta + xz \\\\&= \frac{xz(y^2 - 1)}{1 - y^2}\cos\theta + \frac{y(1 - y^2)}{1 - y^2}\sin\theta + xz \\\\&= xz(1 - \cos\theta) + y\sin\theta \\\\\\r_{12} &= -yz\cos\theta - x\sin\theta + yz = yz(1 - \cos\theta) - x\sin\theta \\\\\\r_{22} &= \frac{yz}{S}\left(\frac{yz\cos\theta + x\sin\theta}{S}\right) + z^2 + \frac{x}{S}\left(\frac{-yz\sin\theta + x\cos\theta}{S}\right) \\\\&= \frac{y^2z^2 + x^2}{S^2}\cos\theta + \frac{xyz - xyz}{S^2}\sin\theta + z^2 \\\\&= \frac{y^2z^2 + 1 - y^2 - z^2}{1 - y^2}\cos\theta + z^2 = \frac{(1 - y^2) - z^2(1 - y^2)}{1 - y^2}\cos\theta + z^2 \\\\&= z^2(1 - \cos\theta) + \cos\theta\end{align*}
ここで計算した $r_{ij}$ と上記の任意軸回転行列 (5) の $i$ 行 $j$ 列目を比較すれば確かに等しいことがわかる ($0 \leq i, j \leq 2$)。