next up previous
Next: 4 最後に Up: 3 次元のアフィン行列を求める問題について Previous: 2 アフィン変換と回転行列 (PDF ファイル: system2.pdf)

3 3 点から合同アフィン変換を決定

私が聞いた、合同アフィン変換 (1) を決定する方法は 以下のような方法であった。
  1. 空間内の 3 点 $P_1$, $P_2$, $P_3$ を、それらが三角形を作るように取る (一直線上には取らない)
  2. それらのアフィン変換 (1) による像 $Q_1$, $Q_2$, $Q_3$ を 決め、そのようなアフィン変換を求める (具体的には回転行列 $A$ とベクトル $\mbox{\boldmath$b$}$ の成分を求める) ことを考える
  3. 以下のようにベクトル $\mbox{\boldmath$x_1$}$, $\mbox{\boldmath$x_2$}$, $\mbox{\boldmath$x_3$}$ $\mbox{\boldmath$y_1$}$, $\mbox{\boldmath$y_2$}$, $\mbox{\boldmath$y_3$}$ を決める

    \begin{displaymath}
\begin{array}{lll}
\mbox{\boldmath$x_1$}=\vec{P_1P_2},& \m...
...\mbox{\boldmath$y_1$}\times \mbox{\boldmath$y_2$}
\end{array} \end{displaymath}

  4. すると、 $X=\matrixR{{x_1},{x_2},{x_3}}$, $Y=\matrixR{{y_1},{y_2},{y_3}}$ に対して

    \begin{displaymath}
Y=AX
\end{displaymath}

    が成り立つので、両辺 $X^{-1}$ をかけて $A=YX^{-1}$ により $A$ が求まり、 $\mbox{\boldmath$b$}$ は式 (1) より

    \begin{displaymath}
\mbox{\boldmath$b$}=\mbox{\boldmath$q_1$}-A\mbox{\boldmath$p_1$}
\end{displaymath}

    により求まる

方法は以上の通りであるが、しかしこれらの操作は 必ずしも自明ではない部分を含んでいる。

例えば $\mbox{\boldmath$x_1$}=\mbox{\boldmath$p_2$}-\mbox{\boldmath$p_1$}$, $\mbox{\boldmath$y_1$}=\mbox{\boldmath$q_2$}-\mbox{\boldmath$q_1$}$ より、

\begin{displaymath}
\mbox{\boldmath$y_1$} = \mbox{\boldmath$q_2$}-\mbox{\boldmat...
...boldmath$p_2$}-\mbox{\boldmath$p_1$}) = A\mbox{\boldmath$x_1$}
\end{displaymath}

となり、同様にして $\mbox{\boldmath$y_2$}=A\mbox{\boldmath$x_2$}$ が成り立つことも分かるので $\mbox{\boldmath$y_3$}=A\mbox{\boldmath$x_3$}$ が成り立てば確かに $Y=AX$、すなわち

\begin{displaymath}
\matrixR{{y_1},{y_2},{y_3}}
=A\matrixR{{x_1},{x_2},{x_3}}
\end{displaymath}

となるが、この $\mbox{\boldmath$y_3$}=A\mbox{\boldmath$x_3$}$、すなわち $(A\mbox{\boldmath$x_1$})\times (A\mbox{\boldmath$x_2$}) = A (\mbox{\boldmath$x_1$}\times \mbox{\boldmath$x_2$})$ は明らかではないし、例えば一般の行列 $A$ に対して成り立つ式ではない。

しかし、これは $A$ が回転行列の場合は成立する。


定理 1

$A$ が直交行列で、$\vert A\vert=1$ の場合、 $\mbox{\boldmath$y_1$}=A\mbox{\boldmath$x_1$}$, $\mbox{\boldmath$y_2$}=A\mbox{\boldmath$x_2$}$ に対して

\begin{displaymath}
\mbox{\boldmath$y_1$}\times\mbox{\boldmath$y_2$}
=(A\mbox{...
...th$x_2$})=A(\mbox{\boldmath$x_1$}\times\mbox{\boldmath$x_2$})
\end{displaymath}

が成立する。


証明

$A$ が直交行列、すなわち $A^TA=E$ である場合、 $A=\matrixR{{a_1},{a_2},{a_3}}$$a_j$ は互いに直交する単位ベクトルとなる。 また、$\vert A\vert=1$ より $\mbox{\boldmath$a_1$}$, $\mbox{\boldmath$a_2$}$, $\mbox{\boldmath$a_3$}$ はこの順に右手系となる。よって、以下が成り立つ。

\begin{displaymath}
\begin{array}{lll}
\mbox{\boldmath$a_1$}\times\mbox{\boldm...
...$}\times\mbox{\boldmath$a_3$}=\mbox{\boldmath$0$}
\end{array} \end{displaymath}

となる。

今、 $\mbox{\boldmath$x_j$}$ の各成分を $\mbox{\boldmath$x_j$}=(x^j_1,x^j_2,x^j_3)^T$ $(j=1,2)$ と書くことにすると、

\begin{eqnarray*}\mbox{\boldmath$y_j$} & = & A\mbox{\boldmath$x_j$}
= \matrixR...
...a_1$} + x^j_2\mbox{\boldmath$a_2$} + x^j_3\mbox{\boldmath$a_3$}
\end{eqnarray*}

となるので、

\begin{eqnarray*}\mbox{\boldmath$y_1$}\times\mbox{\boldmath$y_2$}
& = & (A\mbox...
...}\\
& = & A(\mbox{\boldmath$x_1$}\times\mbox{\boldmath$x_2$})
\end{eqnarray*}

となる。


$A$ が求まれば、そこから平行移動成分 $\mbox{\boldmath$b$}$ を求めるのは易しい。


next up previous
Next: 4 最後に Up: 3 次元のアフィン行列を求める問題について Previous: 2 アフィン変換と回転行列
Shigeharu TAKENO
2004年 2月 26日