[[cg:start|CG用語集トップ]] > [[cg:fundamentals:start|第1章 基礎・座標・色・ディジタル画像]] ====== 2次元アフィン変換 ====== ===== 概要 ===== 2次元アフィン変換は、2次元図形に対する[[cg:fundamentals:translation|平行移動]]、[[cg:fundamentals:scaling|拡大・縮小]]、[[cg:fundamentals:rotation|回転]]、[[cg:fundamentals:shearing|せん断]]などの基本変換と、それらの[[cg:fundamentals:composite_transformation|合成変換]]をまとめて扱う変換である。長さや角度は変わることがあるが、直線は直線のまま、平行な直線は平行なまま保たれる点が特徴である。 {{:cg:figures:chapter01:fig_1_20_composite_transform_order_difference.png?600|順番を入れ換えると合成変換が異なる例}} ===== 詳しい説明 ===== 2次元アフィン変換は、2次元平面上の図形に対して、座標を一定の規則で変える変換のまとまりである。平行移動、拡大・縮小、回転、鏡映、せん断などの基本的な図形変換は、アフィン変換として扱える。また、それらを組み合わせた合成変換もアフィン変換に含まれる。 アフィン変換の重要な性質は、直線性と平行性が保たれることである。変換後に長さや角度、面積が変わることはあるが、直線が曲線になったり、平行だった線が交わったりすることはない。これに対して、遠近感を表す[[cg:fundamentals:perspective_projection|透視投影]]では、平行線が画面上で交わるように見えることがあるため、アフィン変換とは区別する。 {{:cg:figures:chapter01:fig_1_19_composite_transform_rotation_about_non_origin.png?600|合成変換による原点以外での回転の例}} ===== CG制作との関係 ===== CG制作では、2D素材や図形を移動、回転、拡大縮小、反転、せん断する操作をまとめて理解するために役立つ。画像や図形を変形してレイアウトする場合、アフィン変換の性質を知っていると、どの変換で直線や平行関係が保たれるかを判断しやすい。 ===== ゲーム開発との関係 ===== ゲーム開発では、2DスプライトやUIを表示するときの移動、回転、拡大縮小が2次元アフィン変換として整理できる。行列を使って2Dオブジェクトを変換する場合、複数の基本変換を1つの変換として扱える。遠近感を出す透視投影とは目的も性質も違う。 ===== 制作・実装での例 ===== 2Dゲームでスプライトを表示するとき、位置、回転角、スケールを指定して画面に描く処理は、2次元アフィン変換として理解できる。UIパネルを斜めに歪ませても、各辺が直線のまま保たれるならアフィン変換の範囲で説明できる。 ===== 検定対策ポイント ===== 2次元アフィン変換は、2次元の基本変換と合成変換をまとめて扱う概念である。直線は直線のまま、平行な直線は平行なまま保たれる。[[cg:fundamentals:perspective_projection|透視投影]]は平行線が消失点へ向かうように見えるため、アフィン変換とは異なる。[[cg:fundamentals:three_dimensional_affine_transformation|3次元アフィン変換]]との対応も押さえる。 ===== 関連用語 ===== * [[cg:fundamentals:geometric_transformation|幾何学的変換]] * [[cg:fundamentals:composite_transformation|合成変換]] * [[cg:fundamentals:translation|平行移動]] * [[cg:fundamentals:scaling|拡大・縮小]] * [[cg:fundamentals:rotation|回転]] * [[cg:fundamentals:shearing|せん断]] * [[cg:fundamentals:three_dimensional_affine_transformation|3次元アフィン変換]] * [[cg:fundamentals:perspective_projection|透視投影]] ===== タグ ===== * CGエンジニア検定 * 第1章 ---- [[cg:fundamentals:start|← 第1章 基礎・座標・色・ディジタル画像 の目次に戻る]] [[cg:start|← CG用語集トップに戻る]]