- ベストアンサー
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 と掛け合わせ、答えを求めました。(行列なのでかける順番はこちらが先です。)
- みんなの回答 (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 / です。 以上、ご参考になりましたら。
その他の回答 (1)
- pascal3141
- ベストアンサー率36% (99/269)
チェックしました。あっています。
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。