回転行列とは?定義・求め方・性質まで解説
目次
回転行列の定義
回転行列とは、ユークリッド空間においてベクトルを原点を中心に回転させるための線形変換を表す行列です。行列の形で回転操作を表現できるため、コンピュータグラフィックスや物理シミュレーション、ロボティクスなど様々な分野で活用されています。
回転行列 \( R \) は以下の2つの条件を満たします:
- \( R \) は直交行列: \( R^\top R = I \)
- 行列式が1: \( \det(R) = 1 \)
2次元の回転行列
2次元平面上で、原点を中心に角度 \( \theta \) だけ反時計回りに回転させる回転行列は次のように定義されます:
\[ R(\theta) = \begin{bmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} \]
この行列を使って、ベクトル \( \mathbf{v} = \begin{bmatrix} x \\ y \end{bmatrix} \) を回転させた結果 \( \mathbf{v}’ \) は
\[ \mathbf{v}’ = R(\theta) \mathbf{v} \]
具体例
例えば、ベクトル \( \begin{bmatrix} 1 \\ 0 \end{bmatrix} \) を90度(\( \theta = \frac{\pi}{2} \))回転させると:
\[ R\left(\frac{\pi}{2}\right) = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \Rightarrow \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ 1 \end{bmatrix} \]
3次元の回転行列
3次元空間では、回転は回転軸と回転角によって定義されます。代表的な3つの軸周りの回転行列は以下の通りです。
X軸周りの回転(角度 \( \theta \))
\[ R_x(\theta) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \theta & -\sin \theta \\ 0 & \sin \theta & \cos \theta \end{bmatrix} \]
Y軸周りの回転
\[ R_y(\theta) = \begin{bmatrix} \cos \theta & 0 & \sin \theta \\ 0 & 1 & 0 \\ -\sin \theta & 0 & \cos \theta \end{bmatrix} \]
Z軸周りの回転
\[ R_z(\theta) = \begin{bmatrix} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \]
回転行列の性質
- 直交性: \( R^\top R = I \)、すなわち転置行列と元の行列の積が単位行列になる。
- 行列式: 回転行列の行列式は常に1(鏡映行列は -1)。
- 長さの保存: 回転後のベクトルの長さは変わらない。
- 角度の保存: ベクトル間の角度も保存される(内積が変わらない)。
- 合成可能: 複数の回転は1つの回転行列にまとめられる。
回転行列の例と応用
例1:点の回転
点 \( (1, 0) \) を45度回転させると、
\[ R\left(\frac{\pi}{4}\right) \begin{bmatrix}1 \\ 0\end{bmatrix} = \begin{bmatrix} \cos\frac{\pi}{4} & -\sin\frac{\pi}{4} \\ \sin\frac{\pi}{4} & \cos\frac{\pi}{4} \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{2}}{2} \\ \frac{\sqrt{2}}{2} \end{bmatrix} \]
例2:物体の回転(CG・ロボット工学)
3Dオブジェクトの姿勢制御や視点操作では、複数の軸に沿った回転行列を掛け合わせて使います。たとえば、X→Y→Zの順で回転させるなら、
\[ R = R_z(\theta_z) R_y(\theta_y) R_x(\theta_x) \]
例3:座標系の変換
地図座標から航空機の姿勢座標への変換、あるいは画像回転処理などにも用いられます。
まとめ
- 回転行列はベクトルを原点中心に回転させる線形変換を表す。
- 2次元では \( 2 \times 2 \) 行列、3次元では \( 3 \times 3 \) 行列で定義される。
- 直交性と行列式1という性質がある。
- CG、ロボティクス、物理、画像処理など幅広く応用されている。