• ベストアンサー

2次元図形 アフィン変換

2次元図形ABCDEFGHがある。頂点の座標をそれぞれA(0,0),B(2,0),C(2,2),D(3,2),E(2,3),F(0,3),G(-1,2),H(0,2)とする。 この図形を直線y=2x+1に対して反転せよ。 と言う問いなのですが、答えは A(-0.8,0.4),B(-2,2),C(-0.4,3.2),D(-1,4),E(0.4,3.8),F(1.6,2.2),G(1.4,0.8),H(0.8,1.6) になりましたが、合っていますでしょうか。 以前アフィン変換は3×3で行うとお聞きしましたので、ABC、DEF、GHと分け、それぞれ 0 2 2 0 0 2 1 1 1 3 2 0 2 3 3 1 1 1 -1 0 0 2 2 0 1 1 0 ↑GHは2個しかないので右側に0を付け加えました。 それらを -0.6 0.8 -0.8 0.8 0.6 0.4 0 0 1 と掛け合わせ、答えを求めました。(行列なのでかける順番はこちらが先です。)

質問者が選んだベストアンサー

  • ベストアンサー
  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.2

こんにちは。前回Q&Aの回答者です。 >>> 答えは A(-0.8,0.4),B(-2,2),C(-0.4,3.2),D(-1,4),E(0.4,3.8),F(1.6,2.2),G(1.4,0.8),H(0.8,1.6) になりましたが、合っていますでしょうか。 合ってますよ。 >>>以前アフィン変換は3×3で行うとお聞きしましたので、ABC、DEF、GHと分け、それぞれ・・・ それは、考え方がおかしいです。 3×3の正方行列でなくてもよいです。 また、エクセルなどの表計算ソフトでも、正方行列でない行列の積(MMULT)は計算できます。 前回Q&Aにおける私の回答中の【まとめ】の部分 移動前(x1,y1) → 移動後(x2,y2) x2 = -3/5・x1 + 4/5・(y1 - 1)  = -3/5・x1 + 4/5・y1 - 4/5 y2 = 4/5・(x1 - 2) + 3/5・y1 + 2  = 4/5・x1 + 3/5・y1 + 2/5 行列で表したいのであれば、単にこれらの2式を行列の表示に直すだけです。 2×2で、積と和で表せば、  /x2\     / -3/5  4/5 \ /x1\     / -4/5 \ |   |  = |             ||   | + |        |  \y2/     \  4/5  3/5  / \y1/     \  2/5 / ですし、 3×3で、積で表せば  /x2\     / -3/5  4/5  -4/5 \ /x1\ | y2 | = |   4/5  3/5   2/5 || y1 |  \1 /    \    0    0     1    / \ 1/ です。 8点全部を一発で求めるには、 8つの点の移動前の座標を、(xa、ya)、(xb、yb)、・・・(xh、yh) 8つの点の移動後の座標を、(XA、YA)、(XB、YB)、・・・(XH、YH) と置いて、  /XA XB ・・・ XH\    / -3/5  4/5  -4/5 \ /xa xb ・・・ xh\ | YA YB ・・・ YH| = |   4/5  3/5   2/5 || ya yb ・・・ yh |  \1  1 ・・・ 1 /    \    0    0     1   / \ 1  1  ・・・ 1 / です。 以上、ご参考になりましたら。

mamoru1220
質問者

お礼

ご回答ありがとうございました。

その他の回答 (1)

回答No.1

チェックしました。あっています。

mamoru1220
質問者

お礼

ご回答ありがとうございました。

関連するQ&A