大人になってからの再学習

2012-05-23 [数学]アフィン変換とは

アフィン変換とは


幾何学の分野で、ある図形を回転させたり引き延ばしたりする変換をアフィン変換と呼ぶ。
もう少しきちんと説明すると、「アフィン変換とは平行移動と線形変換を組み合わせた変換」のこと。


平行移動はわかるけど、線形変換って?


線形変換とは、「変換の前に直線だった場所は、変換後も直線のまま保たれる」変換のこと。直線が変換によって曲がったりしない。ということ。
さらに、「直線上に点A,B,Cが並んでいたとき、変換の前後でAB:BCの比が変化しない」。線の形が変わらないから線形変換という、と覚えてしまって構わない。


で、アフィン変換って具体的にはどのような変換?


具体的には、線形変換(拡大縮小、剪断、回転)、平行移動があり、これらの組み合わせで表現される。

f:id:Zellij:20120523132626p:image


2次元の図形であれば、線形変換は元の座標に2x2の行列を掛けることで表現できる。平行移動は2次元のベクトルの加算で表現できる。
つまり、次のように表すことができる。x,yが元の座標で、x',y'が変換後の座標。2x2の行列が線形変換で、tx,tyが平行移動。

f:id:Zellij:20120523133520p:image

次のような、次元を1つ上げた3次元の座標(同次座標と呼ぶ)を導入すると、上記を1つの行列の乗算にまとめてしまうことができる。便利!
これを同次変換と呼ぶ。

f:id:Zellij:20120523133705p:image


ちなみに3DCG(3次元コンピュータグラフィックス)の世界では、頻繁に座標変換の話がでてくる。
具体的には、モデル座標→ワールド座標→カメラ座標という座標変換を行う。
これらは平行移動と回転移動しか伴わないので、当然「アフィン変換」である。

カメラ座標からスクリーン座標への投影を行う「透視投影変換」は、(遠くのものほど小さくなる変形を伴うので)アフィン変換ではない。

いずれも3次元の座標値の変換だけど、1つ次数を上げて、4次元の座標(同次座標)で扱うと計算がシンプルになる。


プログラミングのための線形代数コンピュータグラフィックス 理論と実践基礎からわかる画像処理―画像処理のアルゴリズムを理解する (I・O BOOKS)

リンク元