1. 程式人生 > >空間兩條直線段的最短距離及最近點計算

空間兩條直線段的最短距離及最近點計算

  

如果這兩條直線段不共線,假設直線段l0的兩端點為:P0、P1;直線段l1的兩端點為Q0、Q1,;求兩直線段的最短距離?

直線段l0我們可以用方程表示為:

        (1)

直線段l1我們也可以用方程表示為:

            (2)

式中,P、Q分別表示兩直線段上的點。

那麼點P和點Q的距離為:

(3)

我們將(3)式等式兩邊平方得到:

               (4)

那麼求解這兩條空間直線段的最短距離就變成了一個求解最小二乘法的最小值問題了,即求解方程:

      (5)

那麼這個方程怎麼求解呢?下面我們來求解(5)式:由式(1)和式(2)我們有:

(6)

將(6)式帶入(5)式有:

            (7)

那麼就變為求解超靜定方程:     (8)

我們將(8)式變形得到求解超靜定方程:

           (9)

令A=(P0-P1,Q0-Q1),x=(a,-n)T,b=Q1-P1;則式(9)變為:

                 (10)

兩邊同時乘以矩陣A的裝置得到:

                (11)

則x可以求解得到:

            (12)

求得a和n之後,我們知道:

 (·13)

所以,如果a小於0,那麼a=0;如果a大於1,那麼a=1;否則a不變;

如果n小於0,那麼n=0;如果n大於1,那麼n=1;否則n不變。

求解得到a和n之後帶入式(6)就可以求解得到點P和點Q了,然後代入式(3)就可以求解得到最小距離了。