特定の回転軸方向ベクトルと回転角の3次元の回転を表す行列
単位ベクトル$\boldsymbol{u}$に平行な$\mathbb{R}^3$の原点を通る直線を回転軸とする回転角$\theta$の回転を表す行列$R \in \mathrm{SO}(3)$を$\boldsymbol{u}, \theta$から計算する。回転角$\theta$の符号は、$\boldsymbol{u}$の方向に対して右ネジの向きを正とする。$\theta=0$、つまり回転しない行列は単位行列$I_3$であり、このケースを除いて$0 \lt \theta \le \pi$とする。$\pi \lt \theta \lt 2\pi$になる回転は回転軸方向を表すベクトルを$-\boldsymbol{u}$として、$2\pi - \theta$を回転角とする。$\theta = \pi$の場合は、回転軸方向のベクトルが$\boldsymbol{u}, -\boldsymbol{u}$のどちらも同じ回転を表すことに注意。
$\boldsymbol{v} \in \mathbb{R}^3$を任意のベクトルとする。このベクトルに対し、$\boldsymbol{u}$を回転軸方向のベクトル、$\theta$を回転角とする回転を施した結果のベクトルを$\boldsymbol{v}' = R \boldsymbol{v}$とする。
まず、$\boldsymbol{v}$と$\boldsymbol{u}$が一次独立である場合を考える。
$\boldsymbol{u}$に直交するベクトル空間へ$\boldsymbol{v}$を射影して大きさ1に正規化したベクトルを$\boldsymbol{e}_1$とすると、
\begin{eqnarray}
\boldsymbol{e}_1 &=& \frac{1}{\sqrt{\|\boldsymbol{v}\|^2 - (\boldsymbol{u}^T \boldsymbol{v}) ^2}}(\boldsymbol{v} - (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u}) \\
\boldsymbol{v} &=& (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} +\sqrt{\|\boldsymbol{v}\|^2 - (\boldsymbol{u}^T \boldsymbol{v}) ^2}\boldsymbol{e}_1
\end{eqnarray}
となる。$\boldsymbol{u}$と$\boldsymbol{e}_1$は直交する単位ベクトルなので、$\boldsymbol{e}_2 = \boldsymbol{u} \times \boldsymbol{e}_1$とすると、$\boldsymbol{u}, \boldsymbol{e}_1, \boldsymbol{e}_2$は$\mathbb{R}^3$正規直交基底になる。$\boldsymbol{e}_2$は$\boldsymbol{u}$を回転軸方向のベクトルとして、$\boldsymbol{e}_1$を$\frac{\pi}{2}$回転させたベクトルになる。$\boldsymbol{e}_2$は整理すると、
\boldsymbol{e}_2 = \frac{1}{\sqrt{\|\boldsymbol{v}\|^2 - (\boldsymbol{u}^T \boldsymbol{v})^2}} (\boldsymbol{u} \times \boldsymbol{v})
である。
$\boldsymbol{v}'$は$\boldsymbol{v}$に$\boldsymbol{u}$を回転軸方向のベクトル、$\theta$を回転角とする回転を施したベクトルなので、
\boldsymbol{v}' = (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} + \sqrt{\|\boldsymbol{v}\|^2 - (\boldsymbol{u}^T \boldsymbol{v})^2}(\cos \theta \boldsymbol{e}_1 + \sin \theta \boldsymbol{e}_2)
となる。これを整理して、
\begin{eqnarray}
\boldsymbol{v}' &=& (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} + \cos \theta(\boldsymbol{v} - (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u}) + \sin \theta (\boldsymbol{u} \times \boldsymbol{v}) \\
&=& \cos \theta \boldsymbol{v} + (1 - \cos \theta) (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} + \sin \theta (\boldsymbol{u} \times \boldsymbol{v})
\end{eqnarray}
となる。これを$\boldsymbol{v}' = R \boldsymbol{v}$の形に変形する。
$\boldsymbol{u}$を歪対称行列化した行列を
\boldsymbol{u}^{\land} = \begin{bmatrix} 0 & -u_3 & u_2 \\ u_3 & 0 & -u_1 \\ -u_2 & u_1 & 0 \end{bmatrix}
とすると、
(\boldsymbol{u}^{\land} )\boldsymbol{v} = \begin{bmatrix} u_2 v_3 - u_3 v_2 \\ u_3 v_1 - u_1 v_3 \\ u_1 v_2 - u_2 v_1 \end{bmatrix} = \boldsymbol{u} \times \boldsymbol{v}
となり、外積を$\boldsymbol{u}^{\land}$と$\boldsymbol{v}$の行列積で表現できる。
また、
\begin{eqnarray}
(\boldsymbol{u}^{\land})^2 &=& \begin{bmatrix} -u_2^2 -u_3^2 & u_1 u_2 & u_1 u_3 \\ u_1 u_2 & -u_1^2 -u_3^2 & u_2 u_3 \\ u_1 u_3 & u_2 u_3 & -u_1^2 -u_2^2 \end{bmatrix} \\
&=& \begin{bmatrix} u_1^2 - 1 & u_1 u_2 & u_1 u_3 \\ u_1 u_2 & u_2^2 - 1 & u_2 u_3 \\ u_1 u_3 & u_2 u_3 & u_3^2 - 1 \end{bmatrix} \\
&=& \boldsymbol{u} \boldsymbol{u}^T - I_3
\end{eqnarray}
なので、
(\boldsymbol{u}^{\land})^2 \boldsymbol{v} = (\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} - \boldsymbol{v}
となる。これを変形して、
(\boldsymbol{u}^T \boldsymbol{v}) \boldsymbol{u} = \{(\boldsymbol{u}^{\land})^2 + I_3\} \boldsymbol{v}
であるから、
\begin{eqnarray}
\boldsymbol{v}' &=& \cos \theta \boldsymbol{v} + (1 - \cos \theta) \{(\boldsymbol{u}^{\land})^2 + I_3\} \boldsymbol{v} + \sin \theta (\boldsymbol{u}^{\land} )\boldsymbol{v} \\
&=& \left(I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2 \right) \boldsymbol{v}
\end{eqnarray}
となる。したがって、回転行列$R$は
R = I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2
となる。
$\boldsymbol{v}$と$\boldsymbol{u}$が一次独立ではない場合、$\boldsymbol{v}$は回転軸上にあるので$R$による回転で変化しないことが要請される。この場合は、$\boldsymbol{u} \times \boldsymbol{v} = \boldsymbol{0}$なので、$(\boldsymbol{u}^{\land}) \boldsymbol{v} = \boldsymbol{0}$となるから、
\left(I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2 \right) \boldsymbol{v} = \boldsymbol{v}
となり、$I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2$による変換で$\boldsymbol{v}$は変化しない。つまり、
R = I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta ) (\boldsymbol{u}^{\land})^2
の左からの積は$\boldsymbol{u}$を回転軸方向の単位ベクトル、$\theta$を回転角とする回転を表す。
SO(3)の回転行列から回転軸方向と回転角を計算する
固有値・固有ベクトルを使う方法
\mathrm{SO}(3) = \{R \in \mathbb{R}^{3 \times 3}| R^T R = I_3, \det R=1\}
の要素の行列$R \in \mathrm{SO}(3)$の固有値・固有ベクトルを考える。$R \in \mathrm{SO}(3)$であれば、任意の$\boldsymbol{v} \in \mathbb{R}^3$に対し、
\|R\boldsymbol{v}\|^2 =(R \boldsymbol{v})^T (R \boldsymbol{v}) = \boldsymbol{v}^T R^T R \boldsymbol{v} = \boldsymbol{v}^T \boldsymbol{v} = \|\boldsymbol{v}\|^2
となる。つまり、$\|R\boldsymbol{v}\| = \|\boldsymbol{v}\|$である。
$R$の固有値の1つを$\lambda \in \mathbb{C}$、その$\boldsymbol{0}$でない固有ベクトルを$\boldsymbol{u} \in \mathbb{C}^3$とすると、
R \boldsymbol{u} = \lambda \boldsymbol{u}
であり、両辺の大きさをとって、
\|R \boldsymbol{u}\| = |\lambda| \|\boldsymbol{u}\|
となる。$\|R\boldsymbol{v}\| = \|\boldsymbol{v}\|$なので、$|\lambda|=1$を得る。
$R$は実数の行列なので、固有方程式
\det (R - \lambda I_3) = 0
は$\lambda$に関する実係数の三次方程式である。そのため解は実数解3つ、あるいは実数解1つと共役な複素数解2つに限られる。$|\lambda|=1$の条件から、実数解3つの場合はその解は重解含め$\pm1$に限られる。$\det R=1$なので、全ての固有値の積は$1$であるから、実数解3つの場合は$1$の三重解か、$-1$の二重解と$1$が解になる。
固有方程式の解が$1$の三重解の場合、$R=I_3$である。なぜそうなるかというと、任意の直交行列は対角化可能なので、固有方程式の解が$1$の三重解であれば固有値$1$の固有空間は$\mathbb{R}^3$全体である。この場合、$\mathbb{R}^3$の任意のベクトルへの$R$の行列積は恒等変換である。つまり、$R = I_3$。このケースは回転軸のベクトルが任意で、回転角が$0$である。
固有方程式の解が$-1$の二重解と$1$の場合、これは回転角が$\pi$のケースである。なぜそうなるか簡単に説明する。固有値$1$の大きさ$1$の固有ベクトルを$\boldsymbol{v}$とする。また、固有値$-1$の$\boldsymbol{0}$でない固有ベクトルを任意にとって$\boldsymbol{u}$とすると、$R^T R = I_3$を用いて
\begin{eqnarray}
\boldsymbol{v}^T \boldsymbol{u} &=& \boldsymbol{v} R^T R \boldsymbol{u} \\
&=& (R \boldsymbol{v})^T (R \boldsymbol{u}) \\
&=& \boldsymbol{v}^T (- \boldsymbol{u}) \\
&=& -\boldsymbol{v}^T \boldsymbol{u}
\end{eqnarray}
となる。つまり、$\boldsymbol{v}^T \boldsymbol{u} = 0$である。つまり、固有値$-1$の固有ベクトルは$\boldsymbol{v}$に直交する。
任意の直交行列は対角化可能なので、固有値$-1$の固有ベクトル空間の次元は2である。固有値$-1$の固有ベクトル空間から、直交する2つの単位ベクトルをとることができ、それを$\boldsymbol{u}_1, \boldsymbol{u}_2$とする。$\boldsymbol{v}, \boldsymbol{u}_1, \boldsymbol{u}_2$は$\mathbb{R}^3$の正規直交基底となる。$\mathbb{R}^3$の任意のベクトルを1つとって$\boldsymbol{x}$とすると、$x_v, x_1, x_2 \in \mathbb{R}$が唯一つ存在し、
\boldsymbol{x} = x_v \boldsymbol{v} + x_1 \boldsymbol{u}_1 + x_2 \boldsymbol{u}_2 = \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_1 & \boldsymbol{u}_2 \end{bmatrix} \begin{bmatrix} x_v \\ x_1 \\ x_2 \end{bmatrix}
と表せる。この時、
\begin{eqnarray}
R \boldsymbol{x} &=& x_v R \boldsymbol{v} + x_1 R \boldsymbol{u}_1 + x_2 R \boldsymbol{u}_2 \\
&=& x_v \boldsymbol{v} - x_1 \boldsymbol{u}_1 - x_2 \boldsymbol{u}_2 \\
&=& \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_1 & \boldsymbol{u}_2 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & -1 \end{bmatrix} \begin{bmatrix} x_v \\ x_1 \\ x_2 \end{bmatrix} \\
&=& \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_1 & \boldsymbol{u}_2 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \pi & -\sin \pi \\ 0 & \sin \pi & \cos \pi \end{bmatrix} \begin{bmatrix} x_v \\ x_1 \\ x_2 \end{bmatrix}
\end{eqnarray}
と変形できる。つまり、$R$は原点を通る$\boldsymbol{v}$に平行な直線を軸に$\pi$回転させる回転行列である。回転角が$\pi$の回転は回転軸の方向のベクトル$\boldsymbol{v}, -\boldsymbol{v}$の2つが全く同じ回転を表すため区別されない。
固有方程式が実数解1つと共役な複素数解2つの場合、$|\lambda|=1$の条件から、共役な2つの複素数解を$0 \lt \theta \lt \pi$を用いて$\cos \theta \pm i \sin \theta$と表すことができる。この共役な2つの複素数解の固有値の積は
(\cos \theta + i \sin \theta) (\cos \theta - i \sin \theta) = \cos^2 \theta + \sin^2 \theta = 1
である。$\det R=1$から全ての固有値の積は$1$であるので、残り1つの実数解は必ず$1$である。(以上より、$R \in \mathrm{SO}(3)$であれば必ず固有値$1$を持つことが分かる)
固有値$\cos \theta - i \sin \theta$の$\boldsymbol{0}$でない固有ベクトルを$\boldsymbol{u}$とする。$\boldsymbol{u}$は一般に複素数ベクトルなので、その各成分の実部からなる実ベクトルを$\boldsymbol{u}_R$、虚部からなる実ベクトルを$\boldsymbol{u}_I$とする。
\boldsymbol{u} = \boldsymbol{u}_R + i \boldsymbol{u}_I
である。左から$R$との積をとって、
\begin{eqnarray}
R \boldsymbol{u}_R + i R \boldsymbol{u}_I &=& (\cos \theta - i \sin \theta) (\boldsymbol{u}_R + i \boldsymbol{u}_I) \\
&=& (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I) + i (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I)
\end{eqnarray}
となる。両辺の実部と虚部の比較から、
\begin{eqnarray}
R \boldsymbol{u}_R &=& \cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I \\
R \boldsymbol{u}_I &=& -\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I \\
\end{eqnarray}
を得る。
次に、固有値$1$の大きさ$1$の固有ベクトルを$\boldsymbol{v}$として、$\boldsymbol{v}, \boldsymbol{u}_R, \boldsymbol{u}_I$が互いに直交すること、および$\|\boldsymbol{u}_R\| = \|\boldsymbol{u}_I\|$を示す。まずは$R \boldsymbol{v} = \boldsymbol{v}, R^T \boldsymbol{v}=\boldsymbol{v}$を用いて、
\begin{eqnarray}
\boldsymbol{v}^T \boldsymbol{u}_R &=& (R^T \boldsymbol{v})^T \boldsymbol{u}_R = \boldsymbol{v}^T (R \boldsymbol{u}_R) = \boldsymbol{v}^T(\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I) \\
\boldsymbol{v}^T \boldsymbol{u}_I &=& (R^T \boldsymbol{v})^T \boldsymbol{u}_I = \boldsymbol{v}^T (R \boldsymbol{u}_I) = \boldsymbol{v}^T(-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I)
\end{eqnarray}
なので、
\begin{bmatrix} 1 - \cos \theta & - \sin \theta \\ \sin \theta & 1 - \cos \theta \end{bmatrix} \begin{bmatrix} \boldsymbol{v}^T \boldsymbol{u}_R \\ \boldsymbol{v}^T \boldsymbol{u}_I \end{bmatrix} = \begin{bmatrix} 0\\ 0 \end{bmatrix}
であるが、$0 < \theta < \pi$より、
\det \left( \begin{bmatrix} 1 - \cos \theta & - \sin \theta \\ \sin \theta & 1 - \cos \theta \end{bmatrix} \right) = 2 (1 - \cos \theta) > 0
なので、$\boldsymbol{v}^T \boldsymbol{u}_R = \boldsymbol{v}^T \boldsymbol{u}_I = 0$が従う。
さらに、$R^T R = I_3$を用いて、
\begin{eqnarray}
\|\boldsymbol{u}_R\|^2 &=& \boldsymbol{u}_R^T \boldsymbol{u}_R \\
&=& (R \boldsymbol{u}_R )^T R \boldsymbol{u}_R \\
&=& (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I)^T (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I) \\
&=& \cos^2 \theta \|\boldsymbol{u}_R\|^2 + \sin^2 \theta \|\boldsymbol{u}_I\|^2 + 2 \sin \theta \cos \theta \boldsymbol{u}_R^T \boldsymbol{u}_I \\
\|\boldsymbol{u}_I\|^2 &=& \boldsymbol{u}_I^T \boldsymbol{u}_I \\
&=& (R \boldsymbol{u}_I )^T R \boldsymbol{u}_I \\
&=& (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I)^T (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I) \\
&=& \sin^2 \theta \|\boldsymbol{u}_R\|^2 + \cos^2 \theta \|\boldsymbol{u}_I\|^2 - 2 \sin \theta \cos \theta \boldsymbol{u}_R^T \boldsymbol{u}_I \\
\end{eqnarray}
であり、$0 < \theta < \pi$より$\sin \theta > 0$なので、整理すると2式は同じ式
\|\boldsymbol{u}_R\|^2 - \|\boldsymbol{u}_I\|^2 = 2\frac{\cos \theta}{\sin \theta} \boldsymbol{u}_R^T \boldsymbol{u}_I
に帰着する。これを用いて、
\begin{eqnarray}
\boldsymbol{u}_R^T \boldsymbol{u}_I &=& \boldsymbol{u}_R^T R^T R \boldsymbol{u}_I \\
&=& (R \boldsymbol{u}_R )^T R \boldsymbol{u}_I \\
&=& (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I)^T (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I) \\
&=& - \sin \theta \cos \theta \|\boldsymbol{u}_R\|^2 + \sin \theta \cos \theta \|\boldsymbol{u}_I\|^2 + (\cos^2 \theta - \sin^2 \theta) \boldsymbol{u}_R^T \boldsymbol{u}_I \\
&=& -\sin \theta \cos \theta \left( \|\boldsymbol{u}_R\|^2 - \|\boldsymbol{u}_I\|^2 \right) + (\cos^2 \theta - \sin^2 \theta) \boldsymbol{u}_R^T \boldsymbol{u}_I \\
&=& - \boldsymbol{u}_R^T \boldsymbol{u}_I
\end{eqnarray}
となるので、$\boldsymbol{u}_R^T \boldsymbol{u}_I = 0$が従う。さらに、
\|\boldsymbol{u}_R\|^2 - \|\boldsymbol{u}_I\|^2 = 2\frac{\cos \theta}{\sin \theta} \boldsymbol{u}_R^T \boldsymbol{u}_I
だったので、$\|\boldsymbol{u}_R\|^2 = \|\boldsymbol{u}_I\|^2$になる。
以上の議論により、$\boldsymbol{v}, \boldsymbol{u}_R, \boldsymbol{u}_I$は互いに直交し、$\|\boldsymbol{u}_R\| = \|\boldsymbol{u}_I\|$であるから、固有値$\cos \theta + i \sin \theta$の固有ベクトル
\boldsymbol{u} = \boldsymbol{u}_R + i \boldsymbol{u}_I
を$\|\boldsymbol{u}_R\| = \|\boldsymbol{u}_I\| = 1$となるようにとれば、$\boldsymbol{v}, \boldsymbol{u}_R, \boldsymbol{u}_I$は$\mathbb{R}^3$の正規直交基底となる。
任意のベクトル$\boldsymbol{x} \in \mathbb{R}^3$に対して、$x_v, x_R, x_I \in \mathbb{R}$が唯一つ存在して、
\boldsymbol{x} = x_v \boldsymbol{v} + x_R \boldsymbol{u}_R + x_I \boldsymbol{u}_I = \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_R & \boldsymbol{u}_I \end{bmatrix} \begin{bmatrix} x_v \\ x_R \\ x_I \end{bmatrix}
と表すことができる。この時、
\begin{eqnarray}
R \boldsymbol{x} &=& x_v R \boldsymbol{v} + x_R R \boldsymbol{u}_R + x_I R \boldsymbol{u}_I \\
&=& x_v \boldsymbol{v} + x_R (\cos \theta \boldsymbol{u}_R + \sin \theta \boldsymbol{u}_I) + x_I (-\sin \theta \boldsymbol{u}_R + \cos \theta \boldsymbol{u}_I) \\
&=& x_v \boldsymbol{v} + (x_R \cos \theta - x_I \sin \theta) \boldsymbol{u}_R + (x_R \sin \theta + x_I \cos \theta) \boldsymbol{u}_I \\
&=& \begin{bmatrix} \boldsymbol{v} & \boldsymbol{u}_R & \boldsymbol{u}_I \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \theta & - \sin \theta \\ 0 & \sin \theta & \cos \theta \end{bmatrix} \begin{bmatrix} x_v \\ x_R \\ x_I \end{bmatrix}
\end{eqnarray}
となる。これは、$\boldsymbol{v}$に直交する$\boldsymbol{u}_R, \boldsymbol{u}_I$からなる平面において、原点を通り$\boldsymbol{v}$に平行な直線を軸に$\boldsymbol{u}_R$をx軸正の方向、$\boldsymbol{u}_I$をy軸正の方向とするような向きの回転角$\theta$の回転を表している。$\boldsymbol{v}$は固有値$1$の大きさ$1$の固有ベクトルのため、$\pm1$倍の自由度がある。$\boldsymbol{v}$が回転軸の方向を表すベクトルとなるためには、回転角$\theta$が正の回転の方向が、回転軸$\boldsymbol{v}$に対して右ネジの方向である必要がある。この場合、$\boldsymbol{v} = \boldsymbol{u}_R \times \boldsymbol{u}_I$となるようにとればよい。
まとめると、
- $R$の固有値が$1$の三重解の場合、$R$は恒等変換$R=I_3$(回転角$0$)
- $R$の固有値が$1$と$-1$の二重解の場合、$R$は固有値$1$の固有ベクトルを回転軸とする回転角$\pi$の回転行列
- $R$の固有値が$1$と$\cos \theta \pm i \sin \theta$の場合$(0 < \theta < \pi)$、固有値$1$の固有ベクトルを回転軸とする回転角$\pi$の回転で、回転軸の方向を表すベクトルは、固有値$\cos \theta - i \sin \theta$の固有ベクトルの実部を$\boldsymbol{u}_R$、虚部を$\boldsymbol{u}_I$とした場合に$\boldsymbol{u}_R \times \boldsymbol{u}_I$と同じ方向にとる
Rの成分から直接求める方法
固有値・固有ベクトルを計算しなくても、$\boldsymbol{u}$を回転軸方向の単位ベクトル、$\theta$を回転角とする回転を表す行列が$R$の場合、
R = I_3 + \sin \theta \boldsymbol{u}^{\land} + (1 - \cos \theta) (\boldsymbol{u}^{\land})^2
であることから、直接計算することもできる。
\begin{eqnarray}
\boldsymbol{u}^{\land} &=& \begin{bmatrix} 0 & -u_3 & u_2 \\ u_3 & 0 & -u_1 \\ -u_2 & u_1 & 0 \end{bmatrix} \\
(\boldsymbol{u}^{\land})^2 &=& \begin{bmatrix} u_1^2 - 1 & u_1 u_2 & u_1 u_3 \\ u_1 u_2 & u_2^2 - 1 & u_2 u_3 \\ u_1 u_3 & u_2 u_3 & u_3^2 - 1 \end{bmatrix}
\end{eqnarray}
であるから、
R = \begin{bmatrix}
\cos \theta + (1 - \cos \theta) u_1^2 & - \sin \theta u_3 + (1 - \cos \theta) u_1 u_2 & \sin \theta u_2 + (1 - \cos \theta)u_1 u_3 \\
\sin \theta u_3 + (1 - \cos \theta) u_1 u_2 & \cos \theta + (1 - \cos \theta) u_2^2 & - \sin \theta u_1 + (1 - \cos \theta) u_2 u_3 \\
- \sin \theta u_2 + (1 - \cos \theta) u_1 u_3 & \sin \theta u_1 + (1 - \cos \theta) u_2 u_3 & \cos \theta + (1 - \cos \theta) u_3^2
\end{bmatrix}
である。トレースをとると、
\mathrm{tr}(R) = 2 \cos \theta + 1
となる。つまり、
\theta = \arccos \left(\frac{\mathrm{tr}(R) - 1}{2}\right)
で$\theta$を得られる。また、
\frac{R - R^T}{2} = \sin \theta \begin{bmatrix} 0 & -u_3 & u_2 \\ u_3 & 0 & -u_1 \\ -u_2 & u_1 & 0 \end{bmatrix}
となので、
\boldsymbol{u} = \begin{bmatrix} u_1 \\ u_2 \\ u_3 \end{bmatrix} = \frac{1}{2 \sin \theta} \begin{bmatrix} R_{3,2} - R_{2,3} \\ R_{1,3} - R_{3,1} \\ R_{2,1} - R_{1,2} \end{bmatrix}
を得る。ただし、これが使えるのは$\sin \theta > 0$、つまり$0 < \theta < \pi$の場合に限られる。