アフィン変換の具体例
具体的な結果みたいなのがあるとイメージ沸くと思う。
よって、アニメーションgifを用意した。
X軸伸縮+Y軸伸縮+回転

X軸伸縮+Y軸移動+回転

こういったことを簡単に実現してくれるのがアフィン変換ってことになる。
数式的な話
というわけでそろそろ数式的な話に入る。
アフィン変換の基本式は以下になる。
\(
\begin{eqnarray}
x\prime=ax+bx+T_x \\
y\prime=cx+dy+T_y
\end{eqnarray}
\)
これを行列で表現しなおす。
\(
\begin{bmatrix}
x\prime \\
y\prime
\end{bmatrix}=
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}+
\begin{bmatrix}
T_x \\
T_y
\end{bmatrix}
\)
行列と言っても、さっきの方程式を書き換えてるだけだから、
意味としては全く一緒。
これをさらに変形する。
同次座標系
先ほどの式をさらに変形すると以下になる。
\(
\begin{bmatrix}
x\prime\\
y\prime\\
1
\end{bmatrix}=
\begin{bmatrix}
a & b & T_x\\
c & d & T_y\\
0 & 0 & 1
\end{bmatrix}
\begin{bmatrix}
x\\
y\\
1
\end{bmatrix}
\)
このように行列が一個にまとまる。
この表現を同次座標系という。
同次というのは、
入力の\(x,y,1\)の次数が同じって程度の意味合い。
例えば、今回のアフィン変換で言うと、以下のようにすべて一次式で表現できる座標系。
\(
\begin{eqnarray}
x\prime&=&ax+by+T_x \\
y\prime&=&cx+dy+T_x \\
1&=&0x+0y+1
\end{eqnarray}
\)
ここでふと思うのが、
「最後の\(1=0x+0y+1\)っていらなくない?」
しかし、それを許容することで一つの行列にまとめられるとも言える。
アフィン変換だけの話だったらまとめなくても良いのだけど、
別の座標変換の兼ね合いで、同次座標系で表現しておいた方が都合が良いというのが本音だ。
コメント