位置ベクトルの2軸回転

位置ベクトル (x,y,z)y,z の2軸まわりの回転3回で (X,Y,Z) に移すことを考える。

まず、z 成分のみのベクトル (0,0,r) を任意の位置ベクトル (x,y,z) に移す操作を見出そう。


これは、次の2軸回転で実現する。
y 軸まわり \theta の回転
z 軸まわり \varphi の回転
\theta, \varphi はいわゆる天頂角と方位角であり下の値を取るが、0 \le \theta \le \pi,\quad -\pi \le \varphi \le \pi が定義域となる。

\theta = \cos^{-1}\displaystyle\frac{z}{\sqrt{x^2+y^2+z^2}}
\varphi = {\rm sgn}(y) \cos^{-1}\displaystyle\frac{x}{\sqrt{x^2+y^2}}

{\rm sgn}(y) は符号関数で、正・0・負 で1・0・-1 の値をとる。通常電卓や数学ソフトで \cos^{-1} の値域は 0 ~ \pi であることから、y の符号によって判別して -\pi ~ \pi となるようにした。

回転行列は
 {\mathcal R}_y(\theta) = \begin{pmatrix}\quad\cos\theta\quad\; 0\quad \sin\theta \quad \\ \; 0 \quad\quad 1 \quad\quad 0 \\-\sin\theta \quad 0 \quad \cos\theta\end{pmatrix}

 {\mathcal R}_z(\varphi) = \begin{pmatrix}\cos\varphi\,\,\,\,\,\,-\sin\varphi\quad\quad0\\\sin\varphi\quad\quad\cos\varphi \quad\quad 0\\\quad 0 \quad\quad\quad 0 \quad\quad\quad 1\end{pmatrix}

である。

以上で必要な道具(基本操作)はそろった。

目的の回転を次の2段階に分ける。
(1) \boldsymbol{r}=(x,y,z) を2軸回転により r \boldsymbol{e}_z=(0,0,r) に移す。
(2) r \boldsymbol{e}_z=(0,0,r) を2軸回転により \boldsymbol{R}=(X,Y,Z) に移す。

(1) は、基本操作
\boldsymbol{r} = {\mathcal R}_z(\varphi) {\mathcal R}_y(\theta) r \boldsymbol{e}_z
の逆だから
r \boldsymbol{e}_z = {\mathcal R}_y(-\theta) {\mathcal R}_z(-\varphi) \boldsymbol{r}

そして (2) は基本操作
\boldsymbol{R} = {\mathcal R}_z(\varphi^\prime) {\mathcal R}_y(\theta^\prime) r \boldsymbol{e}_z
そのものである。

したがって、目的の操作は
\boldsymbol{R} = {\mathcal R}_z(\varphi^\prime) {\mathcal R}_y(\theta^\prime) {\mathcal R}_y(-\theta) {\mathcal R}_z(-\varphi) \boldsymbol{r} = {\mathcal R}_z(\varphi^\prime) {\mathcal R}_y(\theta^\prime - \theta) {\mathcal R}_z(-\varphi) \boldsymbol{r}

ただし、
\theta = \cos^{-1}\displaystyle\frac{z}{\sqrt{x^2+y^2+z^2}}
\varphi = {\rm sgn}(y) \cos^{-1}\displaystyle\frac{x}{\sqrt{x^2+y^2}}
\theta^\prime = \cos^{-1}\displaystyle\frac{Z}{\sqrt{X^2+Y^2+Z^2}}
\varphi^\prime = {\rm sgn}(Y) \cos^{-1}\displaystyle\frac{X}{\sqrt{X^2+Y^2}}
となる。

以上のような手法を用いれば、たとえば x,y,z 軸まわりの連続回転によって任意の回転を記述することができることになる。

行列が使えるMathcad2001で試してみる