回転行列

線型代数において、回転行列（かいてんぎょうれつ、英: rotation matrix）とは、ユークリッド空間内における原点中心の回転変換の表現行列のことである。 二次元や三次元では、幾何学、物理学、コンピュータグラフィックスの分野での計算に非常によく使われている。大半の応用で扱うのは2次元や3次元の回転だが、一般の次元でも回転行列を定義することができる。 n 次元空間における回転行列は、実数を成分とする正方行列であって、行列式が 1 の n 次直交行列として特徴づけられる： t R = R − 1 , det R = 1. {\displaystyle {}^{t}\!R=R^{-1},\;\det R=1.} n 次元の回転行列の全体は特殊直交群（あるいは回転群）と呼ばれる群をなす。 ユークリッド空間の2次元空間では、原点中心の θ 回転（反時計回りを正とする）の回転行列は、以下の形で表すことができる。 R ( θ ) = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] {\displaystyle R(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}} なぜならば、原点中心に θ 回転して点 (x, y) が (x ', y ') に写るとすると、図形的考察または三角関数の加法定理より、x ', y ' は以下のように表されることが分かる。 x ′ = x cos ⁡ θ − y sin ⁡ θ {\displaystyle x'=x\cos \theta -y\sin \theta } y ′ = x sin ⁡ θ + y cos ⁡ θ {\displaystyle y'=x\sin \theta +y\cos \theta } このことを行列の積で表すと、 [ x ′ y ′ ] = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] [ x y ] {\displaystyle {\begin{bmatrix}x'\\y'\end{bmatrix}}={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}{\begin{bmatrix}x\\y\end{bmatrix}}} となるからである。 逆の回転は、回転角が −θ になるだけなので、 R ( − θ ) = [ cos ⁡ ( − θ ) − sin ⁡ ( − θ ) sin ⁡ ( − θ ) cos ⁡ ( − θ ) ] = [ cos ⁡ θ sin ⁡ θ − sin ⁡ θ cos ⁡ θ ] {\displaystyle R(-\theta )={\begin{bmatrix}\cos(-\theta )&-\sin(-\theta )\\\sin(-\theta )&\cos(-\theta )\\\end{bmatrix}}={\begin{bmatrix}\cos \theta &\sin \theta \\-\sin \theta &\cos \theta \\\end{bmatrix}}} となる。 3次元空間でのx軸、y軸、z軸周りの回転を表す回転行列は、それぞれ次の通りである： R x ( θ ) = [ 1 0 0 0 cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ ] {\displaystyle R_{x}(\theta )={\begin{bmatrix}1&0&0\\0&\cos \theta &-\sin \theta \\0&\sin \theta &\cos \theta \\\end{bmatrix}}} R y ( θ ) = [ cos ⁡ θ 0 sin ⁡ θ 0 1 0 − sin ⁡ θ 0 cos ⁡ θ ] {\displaystyle R_{y}(\theta )={\begin{bmatrix}\cos \theta &0&\sin \theta \\0&1&0\\-\sin \theta &0&\cos \theta \\\end{bmatrix}}} R z ( θ ) = [ cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 ] {\displaystyle R_{z}(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta &0\\\sin \theta &\cos \theta &0\\0&0&1\end{bmatrix}}} ここで回転の方向は、 R x {\displaystyle R_{x}} はy軸をz軸に向ける方向、 R y {\displaystyle R_{y}} はz軸をx軸に向ける方向、 R z {\displaystyle R_{z}} はx軸をy軸に向ける方向である。 他の回転行列も、これら3つの各軸周りの回転行列 R x , R y , R z {\displaystyle R_{x},R_{y},R_{z}} の積によって得ることができる。 例えば、次の積 R z ( γ ) R x ( β ) R y ( α ) {\displaystyle R_{z}(\gamma )R_{x}(\beta )R_{y}(\alpha )} は、yxz系で表したときのオイラー角が α, β, γ であるような回転を表す。 任意の単位軸周りの回転行列はロドリゲスの回転公式で表すことができる。 単位ベクトル n = ( n x , n y , n z ) {\displaystyle \mathbf {n} =(n_{x},n_{y},n_{z})} を軸に回転する行列は R n ( θ ) = [ cos ⁡ θ + n x 2 ( 1 − cos ⁡ θ ) n x n y ( 1 − cos ⁡ θ ) − n z sin ⁡ θ n x n z ( 1 − cos ⁡ θ ) + n y sin ⁡ θ n y n x ( 1 − cos ⁡ θ ) + n z sin ⁡ θ cos ⁡ θ + n y 2 ( 1 − cos ⁡ θ ) n y n z ( 1 − cos ⁡ θ ) − n x sin ⁡ θ n z n x ( 1 − cos ⁡ θ ) − n y sin ⁡ θ n z n y ( 1 − cos ⁡ θ ) + n x sin ⁡ θ cos ⁡ θ + n z 2 ( 1 − cos ⁡ θ ) ] {\displaystyle R_{\mathbf {n} }(\theta )={\begin{bmatrix}\cos \theta +n_{x}^{2}\left(1-\cos \theta \right)&n_{x}n_{y}\left(1-\cos \theta \right)-n_{z}\sin \theta &n_{x}n_{z}\left(1-\cos \theta \right)+n_{y}\sin \theta \\n_{y}n_{x}\left(1-\cos \theta \right)+n_{z}\sin \theta &\cos \theta +n_{y}^{2}\left(1-\cos \theta \right)&n_{y}n_{z}\left(1-\cos \theta \right)-n_{x}\sin \theta \\n_{z}n_{x}\left(1-\cos \theta \right)-n_{y}\sin \theta &n_{z}n_{y}\left(1-\cos \theta \right)+n_{x}\sin \theta &\cos \theta +n_{z}^{2}\left(1-\cos \theta \right)\\\end{bmatrix}}} となる。 線型代数学 四元数 オイラー角 Weisstein, Eric W. "Rotation Matrix". MathWorld（英語）. CS1 maint: Multiple names: authors list