- ベストアンサー
図形の反転
2次元図形ABCDEFGHがある。頂点の座標をそれぞれA(0,0),B(0,1),C(4,1),D(4,1.5),E(6,1),F(6,0),G(4,-0.5),H(4,0)とする。 この図形を直線y=2x+1に対して反転せよ。 と言う問いなのですが、 答えはA(0,0),B(2,0),C(2,2),D(3,2),E(2,3),F(0,3),G(-1,2),H(0,2)になりますでしょうか。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
#5,#6です。 補足質問について >頂点が8個あるので8×8でするのかと思いました。 >この場合はどうすれば良いのでしょうか。 これについてはA#6で書いたはずです。 >平行移動を伴うアフィン変換は >3行×3列の行列を使うはず。 どの様にするかの詳細はA#6にあげた参考URLに書かれています。 ちゃんと参考URLを読んで理解していただけば、3行×3列の行列を使って 平行移動、回転移動、x軸対称移動、逆回転移動、逆平行移動 をして対称移動行列を求めます。その逆行列を求めて、 ベクトルの一次変換をして、A#5に書いた >反転前の図形の頂点の座標を(x,y)とすると、 >反転後の頂点が((4y-3x-4)/5,(4x+3y+2)/5)となります。 (x,y)→((4y-3x-4)/5,(4x+3y+2)/5)…(◆) の対称移動の関係が得られます。 この関係を使って対称移動後の点を求めたのがA#5に書いた次の点群です。 (この変換はEXCELを使えば移動前のA~Hの座標点列から(◆)の式の関数をつかえば対称移動後の点列が得られます。) >正しい頂点は >A(-0.8,0.4),B(0,1),C(-2.4,4.2),D(-2,4.5),E(-3.6,5.8), >F(-4.2,5.2),G(-3.6,3.3),H(-3.2,3.6) >となります。 > プロットしてチェックしてみて下さい。 グラフ用紙を使って、確認して見ましたか? こちらからアドバイスした事に対して、やられたことについての経過の補足がありませんので、更なるアドバイスが進みません。 勿論、解決されたなら詳細な補足をしていただく必要はありません。
その他の回答 (8)
- sanori
- ベストアンサー率48% (5664/11798)
すみません。 途中の式で誤記がありました。 (y1 と書くべきところを y0 と書いていた箇所がありました。) よって、下記の通り訂正させてください。 (校正の過程での誤りなので、結果には影響を与えません。) 【訂正後】 それらの交点Qの座標(x0,y0)を求めます。 連立方程式 y0 = 2x0 + 1 y0 = -1/2・(x0-x1) + y1 4x0 + 2 = -x0 + x1 + 2y1 この次の行からは大丈夫です。
お礼
すみません。問題に訂正があるのと、ここまで整理したいので、いったん締め切ります。 すぐに新しく質問しますので、よろしくお願い致します。
- sanori
- ベストアンサー率48% (5664/11798)
3度目、お邪魔します。 直線の傾きがmであるとき、その直線の垂線の傾きは -1/m です。 ですから、 点P(x1,y1)を通る、直線y=2x+1 の垂線の方程式は、 y = -1/2・(x-x1) + y1 です。 それらの交点Qの座標(x0,y0)を求めます。 連立方程式 y0 = 2x0 + 1 y0 = -1/2・(x0-x1) + y0 4x0 + 2 = -x0 + x1 + 2y0 5x0 = x1 + 2y1 - 2 x0 = 1/5・(x1 + 2y1 - 2) y0 = 2x0 + 1 = 2/5・(x1 + 2y1 - 2) + 1 そして、 点Pから点Qへの移動のX成分は、 x0 - x1 点Pから点Qへの移動のY成分は、 y0 - y1 この移動と同じだけの移動をもう1回行えば、y=2x+1を対称軸として線対称な点に行き着きます。 その点の座標を(x2,y2)と置くと、 x2 = x0 + (x0 - x1) = 2x0 - x1 = 2/5・(x1 + 2y1 - 2) - x1 = -3/5・x1 + 4/5・(y1 - 1) y2 = y0 + (y0 - y1) = 2y0 - y1 = 4/5・(x1 + 2y1 - 2) + 2 - y1 = 3/5・y1 + 4/5・(x1 - 2) + 2 【まとめ】 移動前(x1,y1) → 移動後(x2,y2) x2 = -3/5・x1 + 4/5・(y1 - 1) y2 = 4/5・(x1 - 2) + 3/5・y1 + 2 これで、準備完了です。 表計算ソフトを使うとすれば、これらの式を入力すればよいわけです。 整然とした表が簡単に作れます。 一応、手でやってみますか。 A(0,0),B(0,1),C(4,1),D(4,1.5),E(6,1),F(6,0),G(4,-0.5),H(4,0)とする。 点A(0,0)の行き先 x2 = -3/5・0 + 4/5・(0 - 1) = -4/5 ( = -0.8 ) y2 = 4/5・(0 - 2) + 3/5・0 + 2 = -8/5 + 2 = 2/5 ( = 0.4 ) 点B(0,1)の行き先 x2 = -3/5・0 + 4/5・(1 - 1) = 0 y2 = 4/5・(0 - 2) + 3/5・1 + 2 = -8/5 + 3/5 + 2 = 1 点C(4,1)の行き先 x2 = -3/5・4 + 4/5・(1 - 1) = -12/5 ( = -2.4) y2 = 4/5・(4 - 2) + 3/5・1 + 2 = 8/5 + 3/5 + 2 = 21/5 ( = 4.2) 点D(4,3/2)の行き先 x2 = -3/5・4 + 4/5・(3/2 - 1) = -12/5 + 2/5 = -2 y2 = 4/5・(4 - 2) + 3/5・3/2 + 2 = 8/5 + 9/10 + 2 = 1/10・(16 + 9 + 20) = 45/10 ( = 4.5) 以下、略。 以上、ご参考になりましたら。
お礼
すみません。問題に訂正があるのと、ここまで整理したいので、いったん締め切ります。 すぐに新しく質問しますので、よろしくお願い致します。
- info22
- ベストアンサー率55% (2225/4034)
#5です。 A#5の補足について >MMULT()を用い、計算しました。 >前者のほうが違うと思うのですが、どこが違うのかがわかりません。 8行×8列の行列を使う意味が理解できません。 平行移動を伴うアフィン変換は 3行×3列の行列を使うはず。
お礼
すみません。問題に訂正があるのと、ここまで整理したいので、いったん締め切ります。 すぐに新しく質問しますので、よろしくお願い致します。
補足
頂点が8個あるので8×8でするのかと思いました。 この場合はどうすれば良いのでしょうか。
- info22
- ベストアンサー率55% (2225/4034)
2次元のアフィン変換を使えば求められます。 (途中の計算は複雑な行列計算や逆行列の計算を使いますので計算の詳細は省略します。) 反転前の図形の頂点の座標を(x,y)とすると、 反転後の頂点が((4y-3x-4)/5,(4x+3y+2)/5)となります。 >A(0,0),B(2,0),C(2,2),D(3,2),E(2,3),F(0,3),G(-1,2),H(0,2) は間違っています。 正しい頂点は A(-0.8,0.4),B(0,1),C(-2.4,4.2),D(-2,4.5),E(-3.6,5.8),F(-4.2,5.2),G(-3.6,3.3),H(-3.2,3.6) となります。 プロットしてチェックしてみて下さい。
お礼
すみません。問題に訂正があるのと、ここまで整理したいので、いったん締め切ります。 すぐに新しく質問しますので、よろしくお願い致します。
補足
アフィン変換を行いました。 0,1,0,0,0,0,0,0 0.5,0,0,0,0,0,0,0 0,0,1,0,0,0,0,0 0,0,0,1,0,0,0,0 0,0,0,0,1,0,0,0 0,0,0,0,0,1,0,0 0,0,0,0,0,0,1,0 0,0,0,0,0,0,0,1 と 0,2,2,3,2,0,-1,0 0,0,2,2,3,3,2,2 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 を MMULT()を用い、計算しました。 前者のほうが違うと思うのですが、どこが違うのかがわかりません。 ご教示願えませんでしょうか。
- sanori
- ベストアンサー率48% (5664/11798)
>>>計算の仕方をご教示願えませんでしょうか。 ここのQ&Aサイトでは、丸投げ質問と、丸投げへの回答は禁止されています。 ご自分なりに、どのようにやってみたかを書いてみてください。(補足欄) 全く間違っていてもいいですから。
お礼
すみません。問題に訂正があるのと、ここまで整理したいので、いったん締め切ります。 すぐに新しく質問しますので、よろしくお願い致します。
補足
アフィン変換を行いました。 0,1,0,0,0,0,0,0 0.5,0,0,0,0,0,0,0 0,0,1,0,0,0,0,0 0,0,0,1,0,0,0,0 0,0,0,0,1,0,0,0 0,0,0,0,0,1,0,0 0,0,0,0,0,0,1,0 0,0,0,0,0,0,0,1 と 0,2,2,3,2,0,-1,0 0,0,2,2,3,3,2,2 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 を MMULT()を用い、計算しました。 前者のほうが違うと思うのですが、どこが違うのかがわかりません。 ご教示願えませんでしょうか。
- koko_u_
- ベストアンサー率18% (459/2509)
では、そもそもどうやって「答え」を出したの?
お礼
すみません。問題に訂正があるのと、ここまで整理したいので、いったん締め切ります。 すぐに新しく質問しますので、よろしくお願い致します。
補足
アフィン変換を行いました。 0,1,0,0,0,0,0,0 0.5,0,0,0,0,0,0,0 0,0,1,0,0,0,0,0 0,0,0,1,0,0,0,0 0,0,0,0,1,0,0,0 0,0,0,0,0,1,0,0 0,0,0,0,0,0,1,0 0,0,0,0,0,0,0,1 と 0,2,2,3,2,0,-1,0 0,0,2,2,3,3,2,2 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 1,1,1,1,1,1,1,1 を MMULT()を用い、計算しました。 前者のほうが違うと思うのですが、どこが違うのかがわかりません。 ご教示願えませんでしょうか。
- sanori
- ベストアンサー率48% (5664/11798)
こんばんは。 y=2x+1 を対称軸として、元の図形に対して線対称な図形 ということですよね? A(0,0)は、y=2x+1 の上にはないので、必ず他の点へ移動します。 とりあえず、図を描くとわかりますが、Aの行き先は原点(0,0)ではなく第2象限にあります。 ですから、Aの行き先が(0,0)ということで、すでに間違っています。 ご参考に。
お礼
すみません。問題に訂正があるのと、ここまで整理したいので、いったん締め切ります。 すぐに新しく質問しますので、よろしくお願い致します。
補足
計算の仕方をご教示願えませんでしょうか。
- koko_u_
- ベストアンサー率18% (459/2509)
>答えは(略)になりますでしょうか。 検算の仕方がわからないということですか?
お礼
すみません。問題に訂正があるのと、ここまで整理したいので、いったん締め切ります。 すぐに新しく質問しますので、よろしくお願い致します。
補足
はい。ご教示願います。
お礼
すみません。補足を使ってしまったので、ここに投稿させていただきます。 頂点が8個あるので、3個、3個、2個に分けました。 -0.6 0.8 -0.8 0.8 0.6 0.4 0 0 1 と 0 2 2 0 0 2 1 1 1 をMMULT()を用い計算したところ、 -0.8 -2 -0.4 0.4 2 3.2 1 1 1 と出ました。 しかし、A以外はご教示いただきました解答にはなりませんでした。 同様に -0.6 0.8 -0.8 0.8 0.6 0.4 0 0 1 と 3 2 0 2 3 3 1 1 1 をMMULT()を用い計算したところ、 -1 0.4 1.6 4 3.8 2.2 1 1 1 と出ました。 最後に2つ余ったG,Hですが、3×3にするために以下のようにし、 -1 0 0 2 2 0 1 1 0 をMMULT()を用い計算したところ、 1.4 0.8 0 0.8 1.6 0 1 1 0 と出ました。 最終的に合っているのは、Aのみでした。
補足
もちろん参考URLは読んでいます。 しかし、何をすれば良いのかわかりませんでした。 8×8にするのではないのであれば、どうすれば良いのでしょうか。 全く見当がつきません。