アフィン変換とは何ですか?


21

アフィン変換とは何ですか?それらはポイントだけに適用されますか、それとも他の形状にも適用されますか?「構成」できるということはどういう意味ですか?

回答:


23

アフィン変換は、線形変換+変換ベクトルです。

[xy]=[xy][abcd]+[ef]

個々のポイント、ライン、またはベジェ曲線に適用できます。線の場合、平行線が平行のままであるというプロパティが保持されます。ベジェ曲線の場合、制御点の凸包特性が保持されます。

乗算アウトは、それが生じるため2次方程式を生成する"形質転換"対座標オリジナルペアからのX Y と定数のリストB C D E FをX ' = X + C Y + E(x,y)(x,y)(a,b,c,d,e,f)

x=ax+cy+ey=bx+dy+f

便利なことに、線形変換と平行移動ベクトルは、2D同次座標上で動作できる3Dマトリックスにまとめることができます。

[xy1]=[xy1][ab0cd0ef1]

上記と同じ2つの式が得られます。

非常に便利なことに、行列自体を乗算して、(定数の)3番目の行列を生成し、元の2が順番に実行するのと同じ変換を実行できます。簡単に言えば、行列の乗算は結合的です。

[xy1]=([xy1][ab0cd0ef1])[gh0ij0km1]=[ax+cy+ebx+dy+f1][gh0ij0km1]=[g(ax+cy+e)+i(bx+dy+f)+kh(ax+cy+e)+j(bx+dy+f)+m1]T=[xy1]([ab0cd0ef1][gh0ij0km1])=[xy1][ag+biah+bj0cg+dich+dj0eg+fi+keh+fj+m1]

あるいは、いくつかの基本的な変換タイプを検討し、これらを組み合わせて(それらを掛け合わせて)より複雑な変換を作成できます。

アイデンティティ変換

アイデンティティ変換

[100010001]

スケーリング

スケーリング

[Sx000Sy0001]

(Sx,Sy)=(1,1)(1,1)

翻訳

翻訳

[100010TxTy1]

スキューx x y

xをyスキュー

[1Qx0010001]

yをxでスキュー

yをxスキュー

[100Qy10001]

回転

回転

[cosθsinθ0sinθcosθ0001]

[注:左の行ベクトルを受け入れるMatrixの形式をここに示しました。これらの行列の転置は、右側の列ベクトルで機能します。]

スケーリング、回転、および並進から純粋に構成される行列は、これら3つのコンポーネントに分解できます


5
素晴らしい答え。アフィン変換について考える1つの方法は、平行線を平行に保つことです。したがって、スケーリング、回転、平行移動、せん断、および組み合わせは、アフィンとしてカウントされます。透視投影は、非アフィン変換の例です。
ap_

2
写真を追加できます。あなたが文句を言わないなら:Pまた、行列と行/列の向きが任意であることを言及するのも良いかもしれません。そして、3dの回転は計算的ではありません。
joojaa

2
@joojaa写真を作りました!追伸源
luserはドローグ

1
また、剛体変換はアフィン変換のサブセットであり、アフィン変換は透視変換のサブセットであることも言及する価値があります。
user1118321

私はこれを時々読み直しますが、よくわかりませんが、スキュー変換が間違って記述されている可能性があります。スキューはわかりにくいです。誰もがこれを見て、編集に行きたい場合は、その部分を明確にしてください!
luserは
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.