- 締切済み
3次元空間の点と直線の距離の公式って?
直交座標に関して、 点(x[0],y[0],z[0])と、 パラメータtの直線(x,y,z)=(a,b,c)+t(p,q,r)との距離は、 L=√[{(q^2+p^2)*z[0]^2 +2(-qr*y[0]-pr*x[0]+bqr+apr-cq^2-cp^2)z[0] +(r^2+p^2)y[0]^2+2(-pqx[0]-br^2+cqr+apq-bp^2)y[0] +(r^2+q^2)x[0]^2+2(-ar^2+cpr-aq^2+bpq)x[0] +(b^2+a^2)r^2+2(-bq-ap)cr+(c^2+a^2)q^2-2abpq+(c^2+b^2)p^2} /(r^2+q^2+p^2)] とかけるようなのですが、どのように導けばよいのでしょうか? 計算が複雑すぎて、いい方針が立ちません。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- gef00675
- ベストアンサー率56% (57/100)
計算を簡単にしたいのであれば、 ベクトルで計算すればよいのでは? 点(x[0],y[0],z[0])と直線上の点(x,y,z)の距離をL(t)とかくと、 L(t)^2=|(x,y,z)-(x[0],y[0],z[0])|^2 =|(a,b,c)-(x[0],y[0],z[0])+t(p,q,r)|^2 です。L(t)が最小になるのは、tが ((a,b,c)-(x[0],y[0],z[0])+t(p,q,r))・(p,q,r)=0 (・は内積) を満たす場合。そのときのtの値は、 t=-((a,b,c)-(x[0],y[0],z[0]))・(p,q,r) / |(p,q,r)|^2 です。このときのL(t)がご質問のLの式になります。
- Kules
- ベストアンサー率47% (292/619)
ベタにやっちゃいましょう。 点Pから直線に垂線を下ろし、その足をHとするとHの位置ベクトルは H=(a+pt,b+qt,c+rt)と表せます。 PHベクトルと直線の方向ベクトル(p,q,r)が垂直であることから (a+pt-x0,b+qt-y0,c+rt-z0)・(p,q,r)=0 ここからtを求め、PHベクトルに代入して|PH|を求めれば完成です。 あと、きちんと展開していないので質問欄の式と自分の答えが合っている確証はもてませんが、質問欄に書いてある答えまで展開すると返ってわかりにくい気がしました。 私の場合x0-a=X,y0-b=Y,z0-c=Zと置くと、次のようになりました。 L=√[{(q^2+r^2)X^2+(r^2+p^2)Y^2+(p^2+q^2)Z^2-2(pqXY+qrYZ+rpZX)}/(p^2+q^2+r^2)] こうすると定点と、直線が通る一点との関係が明確に式に表れ、覚えやすいと思います。