本記事は、私がアフィン変換を勉強し始めた当初の記事になります。
今では、3×3行列の同次座標行列と呼ばれる行列しか用いておらず、こちらの方が断然おススメなので、下記ページを参照ください。
以下は、2×2行列を使ったアフィン変換の説明です。
回転行列
点(x, y)を原点まわりに反時計方向にθ度回転する行列は
拡大縮小行列
点(x, y)を原点に関してX軸方向にSX倍、Y軸方向にSY倍する行列は
平行移動行列
点(x, y)をX軸方向にTX、Y軸方向にTYだけ移動する行列は
ただし、平行移動だけ行列の足し算になると、扱いにくい場合があるので3×3行列を用いて以下のように表す場合もあります。
というより、こちらを使う方が便利です。(私はこちらしか使いません。)
【回転行列】
【拡大縮小行列】
【平行移動行列】
とすることで、すべての座標変換を行列の積で扱うことができます。
この行列を同次座標行列と言います。
詳細はこちらを参照ください。
参考まで...
個人的には回転行列を覚えるのは苦手で、SinとCosが逆になっりマイナスのつける位置を間違ったりしていたのですが、次のように考えることで少しは覚えやすくなりました。
下図のように
点(1,0)をθ度回転すると(Cosθ、Sinθ)
点(0,1)をθ度回転すると(-Sinθ、Cosθ)
に移動することはすぐにわかります。
このことを行列で表現すると
点(1,0)が(Cosθ、Sinθ)になることから
点(0,1)が(-Sinθ、Cosθ)になることから
という事がわかります。
これを合わせて表現すると
となり、回転行列が求まります。
この計算を何回か繰り返すと、そのうち覚えると思います。
ピンバック: 任意点周りの回転移動 | イメージングソリューション
ピンバック: 回転行列、拡大縮小行列、平行移動行列(三次元座標の場合) | イメージングソリューション