• 締切済み

平面に反射する点を求めたいのですが…。

はじめまして。 当方大学生です。立体的なものの考え方が苦手で、考えていたら余計こんがらがってきてしまいました。 既知の平面H:ax + by + cz + d = 0 があります。 この平面を突き抜ける形で、点がP = (p1,p2,p3) からQ = (q1,q2,q3)へ移動していきます。P、Qの値も既知です。 (※)この平面が点の動く範囲を制限する制約条件(境界面)となっていて、点が動いた時に境界面を越えたら反射するプログラムを組み込みたいのですが…。 このとき、平面を突き抜ける事なく、点を平面Hに対して反射させた新たな点R = (r1,r2,r3)を求めたいです。 わかる方、教えていただけたら嬉しいです。 よろしくお願いします。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

#2 の補足で OK です.

全文を見る
すると、全ての回答が全文表示されます。
  • info22
  • ベストアンサー率55% (2225/4034)
回答No.2

自助努力の解答のプロセスを補足に書いてください。 ヒントのみにします。 線分PQと平面Hの交点をO、点Pから平面Hに下ろした垂線の足をSと置くと 点P,O,Q,R,Sは同一平面M上にあり、平面Hと平面Mは直交します。 点P,O,Qは同一直線上にあり、点OとSを結ぶ直線は平面Hと平面Mの交線となっている。 そして、反射の法則は平面M上でP→Oで平面Hの点Oで反射し、O→Rと進む。 この反射は平面M上で起こっている。 座標系を三次元アフィン変換して、モデルを単純化すれば簡単でしょう。 つまり平面Hをz=0の平面とし、平面Mをx=0の平面とし、Oを原点とすると、反射経路はz軸対称に起こり、反射点が原点Oになります。 ∠PORはz軸により二等分されます。また∠QORはx軸で二等分されます。 反射の様子を横から見た図をA4に紙に書いて、空間の任意の角度で持って、平行移動とX軸とY軸の周りの回転だけで上のような単純化位置に反射図面を移動できることを確認してください。平行移動->Xの周りの回転-> Y軸の周りに回転->反射法則適用->元に戻す逆行列操作を機械的にするだけです。 平面内での反射なら、中学生でもできるでしょう。 3次元空間で任意の平面内での反射としてやたら変数を増やし、一般化しようとするのは、何の意味やメリットもありません。 三次元アフィン変換の中の平行移動と各座標軸の周りの回転だけで、上記のような単純なモデル化ができますし、そのモデル化も、平行移動行列とX軸の周りの回転行列移動とY軸の周りの回転移動行列の積であらわせます。 少し、三次元のアフィン変換を勉強して、座標系の平行移動と回転移動に行列計算をマスターして下さい。 http://ft-lab.ne.jp/cgi-bin/wiki.cgi?page=%A5%A2%A5%D5%A5%A3%A5%F3%CA%D1%B4%B9_3DCG http://www-antenna.ee.titech.ac.jp/~hira/hobby/edu/afin_trans/math_html/index.html

daarc1gy
質問者

補足

返信ありがとうございます。 説明不足で申し訳ありません、僕が考えていた方法を書きます。 自信がないので、間違っていたらすいません。 点Qから平面Hに垂直に交わる直線はパラメータの値をtとすれば、 x = at + q1 y = bt + q2 z = ct + q3 と表せ、これを平面Hの方程式に代入します。 すると点Sに対応するパラメータの値(t’とします)が得られます。 そこから点S = (at’ + q1、bt’ + q2、ct’ + q3 ) と定められます。 この点S=(s1,s2,s3)とすると、 そこから反射した点R = (2s1 - q1、2s2 - q2、2s3 - q3)と求まりました。 この方法でよいのか、間違っているのかよくわかりません。 ちなみにこの場合線分QSと線分SRの長さは等しくなり、∠QORを平面Hが二等分しているという事でしょうか? アフィン変換というのは初めて聞きました、今から添付のページを参考に見てきます。 稚拙な文章でわかりにくいかと思いますが、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

全部省略すると P と Q が H に関し同じ側にあれば R=Q, 反対側にあれば R は H に関し Q と対称な点になるはず.

daarc1gy
質問者

お礼

お返事ありがとうございます。 内容はわかるのですが、具体的にどのように求めるのかで迷っています。 勉強不足なのでしょうが、自分でもう少し考えてみたいと思います。 お忙しい中返信ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 空間図形の点と直線の距離の公式について

    xyz空間内の点P(p,q,r)から平面ax+by+cz=dにおろした垂線の長さを求めよ という問題(というか公式を示す証明)を見たときに、 (解) 平面ax+by+cz=dに垂直なベクトルのひとつを v→=(a,b,c) とする。平面ax+by+cz=d上にA(x0,y0,z0)をとると、求める長さは h=|AP→・v→|÷|v→| である。 (x0,y0,z0)がax0+by0+cz0=dを満たすことから、 h=|AP→・v→|÷|v→| =|(p-x0,q-y0,r-z0)・(a,b,c)|÷√(a^2+b^2+c^2) =|ap+bq+cr-d|÷√(a^2+b^2+c^2) となっていたのですが、どうしても h=|AP→・v→|÷|v→|である。 の部分が理解できません。検索して調べてみても分からず、結局内積とはなんだろう?と言うところまで調べてみたのですが、2つのベクトルがどれだけ似ているかを示す量、とだけ書いてあるくらいでさっぱり分かりません。 そこで、 (1)なぜ、hが上の式のようになるのでしょうか? (2)幾何学的な意味としては内積は何を表すものなのでしょうか? 以上2点、よろしくお願いいたします。

  • 3点を通る平面の方程式

    A(0,1,1)B(6,-1,-1)C(-3,-1,1)の3点を通る平面の方程式を求めよ。 という問題があったのですが、問題集などの解答では「ax+by+cz+d=0として座標を代入する」となっていました。 このような問題は,一直線上にない三点ABCに対し、点Pが平面上にあるときに AP(ベクトル)=sAB+tACとなる実数s,tがあることを利用して,求める平面上に点Pをとり、方程式を解いて求めてもよいのでしょうか…?

  • 平面上での点移動

    平面A(ax+by+cz+d=0)上に点P(X1,Y1,Z1)が存在して、 この点Pが、平面Aを基準とした仮のXY軸上を(ΔX,ΔY)移動した先の 座標値(X2,Y2,Z2)を計算したいのですが、どのように計算したら良いのでしょうか? よろしくお願いいたします。

  • 平面上 点の移動

    平面A(ax+by+cz+d=0)上に点P(X1,Y1,Z1)が存在して、 この点Pが、平面Aを基準とした、平面上にある直線B(a1x+b1y+c1z+d1=0)に沿って距離Lを移動した先の 座標値(X2,Y2,Z2)を計算したいのですが、どのように計算したら良いのでしょうか? よろしくお願いいたします。

  • 平面方程式について

    平面方程式について教えてください。 平面方程式はax+by+cz+d=0で教科書には書いてあるのですが ウェブで検索するとz=ax+by+cと書いてありました。 これはなぜなのでしょうか?? どのように変形したらいいのでしょうか? 教えてください お願いします

  • 平面

    点(-1,1,2)を通り平面2x-y+3z-2=0に直交する平面の方程式は? 図もよくわかりません 1.x-y-z+4=0, 2.3x-9y+z+8=0 , 3.x-y-z-5=0 , 4.3x-9y-z+14=0 5. 3x+9y+z-8=0 から選ぶ問題です 答は1番のx-y-z+4=0です 面は、 a(x-α)+b(y-β)+c(z-γ)=0…(1)と表すことができ。 そして、これを展開して ax+by+cz-aα-bβ-cγ=0の -aα-bβ-cγを -aα-bβ-cγ=dとおき、 ax+by+cz+d=0…(2) 一般に、(1),(2)が平面の方程式 だそうですがどのように利用し、どうやって解くのかわかりません。 初心からおねがいします。

  • 3次元の平面と対称点の問題を教えて下さい。

    この問題です。 A(3,1,0),B(0,1,-1),C(8,0,1)∊R³を(通る平面Πは原点を通らないので、 {(x,y,z)∊R³|ax+by+cz=5}と表わすことができる (1)a,b,cを求めよ。 (2)X(-3,3,4)のΠに関する対称点Y=Sπ(X)の座標を求めなさい という問題です。 解いたのですが、あっているか確認お願いいたします (1) ax+by+cz=5にA、B、Cを代入し3つの式を連立 a=1、b=2、c=-3 (2) 移動した対称点の座標をX'とする。X=(-3,3,4)、a=(1,2,-3)、d=5とおくと X'=X-((2a・x-2d)/(a・a))・a より、 X'=(-1,7,-2) となる。

  • 3次元での点群に対する最小二乗法での平面の算出について(点と平面の距離

    3次元での点群に対する最小二乗法での平面の算出について(点と平面の距離。残差ではない。) -- 点と平面のZ軸方向の距離(残差)の二乗和を最小とする場合には、 平面をax+by+c=zとして、Σ(ax+by+c-z)^2をa,b,cのそれぞれで偏微分して それを=0とした連立方程式を解くことで解を得ることが出来ました。 また、式の形も、ある点のxとyを平面の式へ代入した際の値と、点のz値の差分を見ており、 簡単に納得のできるものとなりました。 これに対して、点と平面の距離(空間的な最小距離)の二乗和を最小とする場合には、 どのような流れで計算すれば良いのでしょうか? 点と平面の距離は|Ax+By+Cz+D| (A,B,Cは単位ベクトル)として求まりますが、 これをどう使うのかが分かりません。 Σ(Ax+By+Cz+D)^2をA,B,C,Dのそれぞれで偏微分して=0としても、 定数項が無いため、連立方程式の解がすべてゼロとなってしまいます。 強引に、Σ(A'x+B'y+C'z+1)^2として変形させて解いてみましたが、 得られたA',B',C'からA,B,C,Dに戻すと、Dがきちんと出ませんでした。(他についても怪しい。) こういった状況に迷い込んでしまい、どう考えるのが良いのか分からなくなってしまいました。 指南いただけませんでしょうか?

  • 平面の方程式

    原点O点と点P(2a+2b+4,4b+4,-a+3b+11)との距離の最小を求めよ。 という問題で、 OPの長さを求めて、a,bの最小値を求める方法ではなく、 平面の方程式ax+by+cz+d=0(外積、法線ベクトル等)を利用して解け。 と授業で言われましたが、わかりません。 よろしくお願いします。

  • 4次元空間上での平面の式

    任意の点を(x,y,z,u)とした4次元空間で (1)3次元の立体を表す式は ax+by+cz+du=e でいいですか? (2)2次元の平面を表す式は一般にどのような形になりますか? 上記のことに疑問を持った理由。 2次元空間で1次元の直線を表す式は、一般にax+by=cとなる。 これは、2点(x,y),(xo,yo)を通り、方向ベクトルが(a',b')で媒介変数tとして x=a't+xo y=b't+yo と書くこともできる。 3次元空間で2次元の平面を表す式は、一般にax+by+cz=d となる。 これは、 平面上の2点(x,y,z)と(xo,yo,zo)を結ぶベクトルとこの平面に垂直な直線の方向ベクトル(a,b,c)の内積が0であるという条件より導かれる。 実際に計算すると a(x-xo)+b(y-yo)+c(z-zo)=0 ax+by+cz=axo+byo+czo になり、ax+by+cz=dという形と同値であることが確認できる。 【別な考え】 3次元空間内の平面は、異なる3つの点によって決定するので、異なる3点を P(xo,yo,zo)、Q(x1,y1,z1)、R(x2,y2,z2) とする。この平面上の任意の点X(x,y,z)は、媒介変数t,sを使って OX↑=OP↑+tPQ↑+sPR↑ と書ける。 成分表示にするために OP↑=(xo,yo,zo) PQ↑=(a,b,c) PR↑=(a',b'c') と方向ベクトルを定義すると、 x=xo+at+a's......(1) y=yo+bt+b's......(2) z=zo+ct+c's......(3) という書き方も平面を表す式である。 実際に(1)と(2)から未知数t,sについてx,yの式で表すことができるので、それを(3)式に代入すれば、(1)(2)(3)式は、一つの式 a"x+b"y+c"z=d'という形になる。 直線を表す式は、媒介変数tを使って x=at+xo y=bt+yo z=ct+zo または、 (x-xo)/a=(y-yo)/b=(z-zo)/c=t となる。 4次元空間で同じように、 直線や平面や立体を考えてみた。 2次元では、(1,0)と(0,1)が直交の基底ベクトル。 3次元では、(1,0,0)と(0,1,0)と(0,0,1)が直交の基底ベクトル。 したがって、 4次元では、(1,0,0,0)と(0,1,0,0)と(0,0,1,0)と(0,0,0,1)が直交の基底ベクトル。 4次元空間では、点は4つの成分で表される。 4次元空間での直線について。 直線は2点が与えられば書ける。 2点(x,y,z,u)と(xo,yo,zo,uo)を通り、その直線の方向ベクトルが(a,b,c,d)だとしたら、媒介変数tを使って、 x=at+xo y=bt+yo z=ct+zo u=dt+uo となって (x-xo)/a=(y-yo)/b=(z-zo)/c=(u-uo)/d=t 次に4次元空間での3次元立体について。 2次元空間では、それより一つ次数が低い1次元の直線は一つの式 ax+by=c で与えられた。 3次元空間では、それより一つ次数の低い2次元の平面は、一つ式 ax+by+cz=d で表さられた。 したがって、4次元空間では、それより一つ次数の低い3次元の立体は、 ax+by+cz+du=e で表されるだろう。 【別な考え】 4次元空間では、ある方向ベクトル(a,b,c,d)に直交する立体は一つしかない。なぜなら、4次元空間での基底ベクトルは4つで空間(立体)は3つの基底ベクトルで決定されて、残り一つが残っているからだ。 立体上の2点(x,y,z,u)と(xo,yo,zo,uo)を結ぶベクトルとこの立体に垂直な直線の方向ベクトル(a,b,c,d)の内積が0であるという条件で計算すると a(x-xo)+b(y-yo)+c(z-zo)+d(u-uo)= 0 ax+by+cz+du=axo+byo+czo+duo になり、ax+by+cz+du=eという形になる。 2次元の平面はどうだろうか? (ここからが本題) 4次元空間では、ある方向ベクトル(a,b,c,d)に直交する平面は、2つあるはずだ。 なぜなら、4次元空間での基底ベクトルは4つで平面は2つの基底ベクトルで決定されて、残り2つが残っていて、それはこの平面に直交するように選べるからだ。 平面は、異なる3つの点によって決定するので、異なる3点を P(xo,yo,zo,uo)、Q(x1,y1,z1,u1)、R(x2,y2,z2,u2)、 とする。この平面上の任意の点X(x,y,z,u)は、媒介変数t,sを使って OX↑=OP↑+tPQ↑+sPR↑ と書ける。 成分表示にするために OP↑=(xo,yo,zo,uo) PQ↑=(a,b,c,d) PR↑=(a',b',c',d') と方向ベクトルを定義すると、 x=xo+at+a's......(1) y=yo+bt+b's......(2) z=zo+ct+c's......(3) u=uo+dt+d's.....(4) という書き方も平面を表す式である。 (1)と(2)を連立して、未知数t,sについてx,yの式で表すことができるので、それを(3)式と(4)式代入すれば、(1)(2)(3)(4)式は、2つの式 a"x+b"y+c"z+d"u=e' a"'x+b"'y+c"'z+d"'u=e" になる。 この2つの式からuを消去すれば、結局、 Ax+By+Cz=D という形になる。 zを消去すれば、 Ax+By+Cu=D yを消去すれば、 Ax+Bu+Cz=D xを消去すれば、 Au+By+Cz=D