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点の求め方が駄目なのでしょうか?
幾何学初心者なため,混乱しております.
宜しくお願いいたします.
お礼
回答有り難うございます! プログラム完成しました。