- 締切済み
アフィン変換できる方助けてください
アフィン変換(2次元・3次元)のすべての変換(スケール・相似・せん断・回転・平行)を次の3点の座標について計算しなさい。 A (1,2) A2 (3,4) A3 (2,5) この問題できる方、回答していただけたらありがたいです。またやり方だけでも教えてくれるとありがたいです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- proto
- ベストアンサー率47% (366/775)
まず3点の座標の表し方を斉次座標の形に書き換えます。 (平行移動をうまいことやるためです。) (x,y) = (X/W,Y/W,1) = (X,Y,W) ってことなんですが、とりあえずはベクトルの最後に1をくっつけて3次元ベクトルにするだけ。 3つ目の成分はz座標じゃないですよ。 A1(1,2) -> (1,2,1) 他も同様 次に、相似なら「m倍に拡大する」、回転なら「原点中心で反時計回りにθ回転」などそれぞれの変換に必要なパラメータを適当な変数で置いてやって、それぞれの変換に対応する変換行列を3点のベクトルに掛け合わせるだけです。 例えば相似なら変換行列は [m,0,0] [0,m,0] [0,0,1] ですからこれをA1(1,2,1)に後ろから掛け合わせると 変換後の座標A1'は A1'(m,2m,1) で、最後にベクトル全体をW'(変換後のW成分)で割った後にもとの座標系に戻してあげる。 この場合はそのままで、 A1'(m,2m) 他も同様。 他も同様なんですが、行列演算の便利なところで3点の座標を縦に並べて [1,2,1] [3,4,1] [2,5,1] としてから、後ろから変換行列を掛け合わせると全てまとめて変換が出来るから便利。 もしも斉次座標って何?変換行列って何?って状態なら、アフィン変換の意味から復習し直してみてください。
お礼
詳しい説明ありがとうございました。またよろしくお願いいたします。またアフィン変換の説明がわかりやすく説明してあるサイトなどがあったら教えていただきたいです。