• ベストアンサー

3次元空間での2直線の交点の求め方

悩んでおります.御力添えを願います. 以下の条件下にて,2つの直線式を求め,その交点を求めようとしております. 1.点p(a0,b0,c0)と点q(a1,b1,c1)の座標は既知. 2.点s(d,e,f)は,座標は未知であるが,点p,点qへ向けて2つの直線を延ばしており,それぞれの直線の傾きが既知. 以上の条件をもとに,点s(d,e,f)の座標を求めようとしています. 私の考えた手法は,以下の物ですが上手くいきません. 1.点sから伸びる2つの直線の方向余弦を求める. 例)vx = r * cosα,vy = r * cosβ, vz = r * cosγ (上記の様に2点へと伸びる直線の方向余弦をそれぞれ求める) 2.求めた方向余弦と,点p,点qを用いて2つの直線式を表す. 例)x = a0 + vx0 * t, y = b0 + vy0 * t, z = c0 + vz0 * t x = a1 + vx1 * s, y = b1 + vy1 * s, z = c1 + vz1 * s    3.誤差を考慮し,2直線間の距離が1番小さくなる2点を求める. 例)(距離)^2 = {a0 + vx0 * t - a1 - vx1 * s}^2 = {b0 + vy0 * t - b1 - vy1 * s}^2 = {c0 + vz0 * t - c1 - vz1 * s}^2     上記の式をs,tに関して偏微分してやり,それぞれを0として連立 方程式を解き,s,tを求める.   求めたs,tを各直線式に代入してやり,2直線間の距離が最も短く なる2点を求める. 4.その2点の線分上の中点を求め,点s(d,e,f)とする. 上記手法で求めようとしましたが,どうも点sの座標が求まりません. 点sで方向余弦を求めるのが駄目なのでしょうか? 2直線間の距離が最も短くなる2点の求め方が駄目なのでしょうか? 幾何学初心者なため,混乱しております. 宜しくお願いいたします.

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

  • ベストアンサー
noname#101087
noname#101087
回答No.2

2直線の傾き s, t を勝手に与えると、交点があるとは限りませんね。 その場合は最小二乗解を求める、という作戦ですか。 ならば、一般化逆行列の手法を使えないものでしょうか ?  http://www7.ocn.ne.jp/~kawa1/GIM.PDF >一般逆行列

k_9116
質問者

お礼

まだ悩んでおりますが、大分解に近づいてきている様に思います。 ありがとうございました。

k_9116
質問者

補足

丁寧な回答ありがとうございます。 一般化逆行列ですか、ちょっと挑戦してみます。 参考資料、ありがとうございます。 また、報告させていただきます。

その他の回答 (1)

  • kkkk2222
  • ベストアンサー率42% (187/437)
回答No.1

α,β,γ,α',β',γ',は書きにくいので,A,B,C,A',B',C'とします。 sがダブっているので、点S(d,e,f)とします。 (cosA,cosB,cosC)が方向余弦=直線の傾き (cosA',cosB',cosC')が方向余弦=直線'の傾き 直線の方程式は、 (x-a0)/cosA=(y-b0)/cosB=(z-c0)/cosC 直線'の方程式は、 (x-a1)/cosA'=(y-b1)/cosB'=(z-c1)/cosC' 2直線が、交わるならば、parameter, s,tを使用して交点は、求められます。(交わらない場合が、後述されています。) いずれにしても、点S(d,e,f)は決定しません。 *それとも、点S(d,e,f)が交点と言う意味ですか? *どうも、そのように思います。 *ならば、交点S(d,e,f)と書かないと、意味が伝わりません。 *されど、其の場合には最初から、交点が存在します。 ?

k_9116
質問者

補足

丁寧な回答ありがとうございます。 つまり、点Sで求めた方向余弦をp点、q点座標を基に表す直線の方程式に使っても大丈夫ということですね。 (交わらない場合が、後述されています。)以下は、どのような意味でしょうか?

関連するQ&A

  • 3次元空間中の直線同士の交点を最小2乗法で求めたい

    3次元空間中の点aとbを通る直線、cとdを通る直線、eとfを通る直線がそれぞれあった場合それらの直線同士が最短となる点sを求めたいのですが考えがまとまりません。 各直線式は s = t1(b-a)+a s = t2(d-c)+c s = t3(f-e)+e となり、これを最小2乗法で解きたいのですが媒介変数tが混じっていてうまく考えがまとまりません。 アドバイスをお願いします。

  • 3次元空間の回転行列

    3次元空間上の点A(X,Y,Z)と点B(X',Y',Z')があるとします。ただし、点Bは、点Aを原点Oを中心とする3次元空間の回転をさせることによって得られる点とします。 このAをBへと回転させる行列を、特に以下のように考えて得られる回転行列として導出する方法を教えてください。 O,A,Bによって作られる平面に直交し、原点を通る軸を回転軸として、それを軸にAを∠AOB回転させる。 一応自分なりに考えたこの回転行列を求める方法としては、まず ベクトルOA、OBに対してシュミットの直交化を用いて新たな正規直交基底、Vx、Vy、Vzを求めます。ただし、はじめのVxの導出にはOAを用い、VzはVxとVyの外積を計算しました。 次にP=(Vx,Vy,Vz)として座標変換の行列Pを作ります。 そして、求める行列Wを W = PMz(P^-1) (Mzはz軸まわりに∠AOB回転させる行列、P^-1はPの逆行列) として導出しました。 このようにして解く方法を考えたのですが、これは正しいのでしょうか? また、これ以外にもっとスマートに解く方法があれば教えてください。 よろしくお願いします。

  • MATLABの画像処理、2本の直線のそれぞれの垂線

    私がやろうとしていることは、MATLABの画像処理で、2本の直線のそれぞれの垂線の交点の座標を求めることです。 具体的には、三つの点P1,P2,P3について、P1P2間に直線を引き、その中点から垂線をおろします。P2P3間でも同様の処理をし、 その垂線同士の座標を求めたいです。 現在途中までプログラムを作ったのですが、直線の法線方向の単位ベクトルと中点を求め、そこから垂線を引く。から先ががどうしても分かりません。 どなたか具体的な方法を教えてください。 また、法線方向の単位ベクトルと中点から垂線を引くことができなければ、違う解決策を教えて頂きたいです。 以下が作成途中のプログラムです。 % 読み込む画像ネーム name='Picture 74'; pt=10; %データポイント % イメージ作成 image = imread(strcat(name,'.jpg')); a1=270; b1=166; a2=97; b2=260; a3=140; b3=421; %手動で座標を読み取り、Mファイルを作成 save(strcat(name,'.mat'),'a1','b1','a2','b2','a3','b3') ↓ %画像の3点の座標読み込み load('Picture 74.mat'); p1=[a1,b1]; p2=[a2,b2]; p3=[a3,b3]; %中点を求める(n1,m1) (n2,m2) n1 = (a1 + a2)/2; m1 = (b1 + b2)/2; n2 = (a2 + a3)/2; m2 = (b2 + b3)/2; %垂線を求める %s1*x+t1*y+u1=0; %直線の方程式より、係数 s1,t1,u1 以下のようになる、 s1=b2-b1; t1=a2-a1; u1=-(s1*a2+t1*b2); %P1P2間の距離 L1=sqrt((a1-a2)^2+(b1-b2)^2); %直線の単位ベクトル(ex,ey)を求める ex=(a2-a1)/L1; ey=(b2-b1)/L1; %直線の法線ベクトル(vx,vy)を求める vx=ey; vy=-ex; 質問に答えてくださる方、どうかよろしくお願い致します。

  • 媒介変数方程式と交点の座標

    Aは点(3.5)を通り方向ベクトルAが(2.3)の直線。Bは点(4.-2)を通り方向ベクトルBが(-3.4)の直線である。 (1)直線A,Bの媒介変数をs,tとして、それらの媒介変数方程式を求めてください。 (2)AとBの交点の座標を求めよ。 (恐らく直線AとBのこと?) 回答よろしくお願いいたします。

  • 2直線の交点を通る直線の式について

    2直線の交点を通る直線の式について 2直線をax+by+c=0,a'x+b'y+c'=0の交点を通る直線の式は ax+by+c+k(a'x+b'y+c')=0 …(*) であらわすことができますよね。 (*)が、2直線をax+by+c=0,a'x+b'y+c'=0の交点を通る直線の式となっていることは理解できます。 しかし、(*)の式を用いなくても、2直線の交点を通る直線の式を求めることはできますよね。連立方程式を解いたりして… わざわざ、(*)のような式を立てる意味は何ですか?? また、なぜk倍しているのでしょうか?? そもそも、なぜ異なる2式を(*)のように足すことができるのでしょうか?? 回答よろしくお願いします。

  • 2直線の交点

    まず、 交わる2直線 a1x+b1y+c1=0-(1) a2x+b2y+c2=0-(2) について、a1x+b1y+c1+k(a2x+b2y+c2)=0-(3) は(1)と(2)の交点を通る直線を表す。 これは、どうやって証明するのでしょうか? また、式自体、よく意味がわかりません、どういうことなのでしょうか?

  • 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

  • 数学Cの2次曲線の問題がわかりません

    数学Cの2次曲線の問題がわかりません 円x^2+y^2=1のy>0の部分をCとする。C上の点Pと点R(-1,0)を結ぶ直線PRとy軸の交点をQとし、その座標を(0,t)とする。 (1)点Pの座標を(cosθ,sinθ)とする。cosθとsinθをtを用いて表せ。 (2)3点A,B,Sの座標をA(-3,0),B(3,0),S(0,1/t)とし、2直線AQとBSの交点をTとする。 点PがC上を動くとき、点Tの描く図形を求めよ。 (1)からわかりません。 お願いします!

  • 電磁気学の問題

    質問させていただきます 図のように直交座標系(x,y,z)をとり、静電場E↑をy軸の方向に、静電場B↑を z軸の方向に選ぶ。 荷電粒子の速度Vは V↑=Vx↑+Vy↑+Vz↑と分解できるとする このときx,y,z方向の運動方程式をたてよ。 ただし磁束密度の大きさをB 電場の強さの大きさをE 速度ベクトルの大きさをVx,Vy.Vzとする またE=0で初速度を Vx=V0,Vy=0.Vz=0とする。 この粒子はどの方向にどんな運動をするか? この問題なのですが どなたか教えてください!!

  • 2直線の交点 

    2直線X+2y-3=0、2X-3y+8=0の交点と点(1、-1)を通る直線の方程式を求めよ。 私の考え方  まず連立方程式で2つの式を解いて二直線の交点の座標は(-1、2)であって(1、-1)をとおるから  y+1= -2分の3(x+1)であってる?でこのあとの回答が導き出せません。このあとどんな計算をすればよいのですか?