MATLAB,Python,Scilab,Julia比較 第3章 その69【アフィン変換⑬】

MATLAB,Python,Scilab,Julia比較 第3章 その69【アフィン変換⑬】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その69【アフィン変換⑬】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/

はじめに

アフィン変換の続き。
各種アフィン変換とアフィン行列について。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

各種アフィン変換とアフィン行列

太郎くん
太郎くん

今回は各種アフィン変換をする場合のアフィン行列をどうするかって話だね。

フクさん
フクさん

そうそう。
確認するのは以下になる。

  • 伸縮
  • 移動
  • 回転
  • 剪断
太郎くん
太郎くん

この名称はアフィン変換の最初の方でも出てきたね。

フクさん
フクさん

基本はこの4つの組み合わせで処理することになる。

伸縮

フクさん
フクさん

まずは伸縮。
\(x\)軸方向に引き延ばす場合は、\(x\prime\)が\(x\)に係数が掛かればOK。
\(y\)軸も考え方は一緒だな。

アフィン変換伸縮
太郎くん
太郎くん

座標変換という考え方に則れば当然か。

移動

フクさん
フクさん

次は移動。
これは\(x\)軸、または\(y\)軸の方向にバイアスを載せればOK。

アフィン変換移動
太郎くん
太郎くん

これも落ち着いてみれば当然の話か。

回転

フクさん
フクさん

ここら辺から少しややこしくなる。
回転だ。
回転行列を使って、回転後の座標を推定する。

アフィン変換回転
太郎くん
太郎くん

回転行列がわからん・・・。

フクさん
フクさん

これもそれほど複雑ではないが、別途説明しよう。

剪断

フクさん
フクさん

次は剪断。
これも若干ややこしい。

アフィン変換剪断
太郎くん
太郎くん

\(\tan(\theta)\)とか入ってて意味わからん・・・。

フクさん
フクさん

これは冷静に考えると分かるのだが、
\(\tan(\theta)\)は角度\(\theta\)時の\(x\)と\(y\)の比率だ。
\(\tan(30^{\circ})\)
つまり、\(y\)が大きくなるほど、\(x\prime\)は\(1/\sqrt{3}\times y\)分ずれていく。

太郎くん
太郎くん

あー、そのずれた結果がこの斜めった画像ってことか。

フクさん
フクさん

そうそう。

というわけで?

太郎くん
太郎くん

じゃー、今度こそ実際にプログラm

フクさん
フクさん

ちょい待ち!

太郎くん
太郎くん

まだなんかあるんかー!?

フクさん
フクさん

さっきの回転行列の話がまだ終わってない。

太郎くん
太郎くん

そういやあったな。

フクさん
フクさん

それを次回説明してから、
その後にプログラムを作成についての話に入る。

まとめ

フクさん
フクさん

まとめだよ。

  • 各種アフィン変換とアフィン行列の説明。
    • 伸縮、移動、回転、剪断。
  • 回転は回転行列を使ってるので少しわかりにくい。
    • よって、別途説明。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました