1. 程式人生 > >計算空間中兩條線段的最小距離

計算空間中兩條線段的最小距離

來自個人百度空間的文章---2012.2.19

一、基礎知識

     本來是空間三維座標系,只是為了便於理解所以採用一般的2維座標,其實是一樣的

     1、設AB線段 A(A.x,A.y),B(B.x,B.y),在AB上有一點為Q,

           Q.x=A.x+s*(A.x-B.x);

           Q.y=A.y+s*(A.y-B.y);

     2、設CD線段 C(C.x,C.y),D(D.x,D.y),在CD上有一點為P,

           P.x=C.x+t*(C.x-D.x);

           P.y=C.y+t*(C.y-D.y);

     3、則求AB,CD的距離就變成了QP的長度了,也就是f(s,t)的最小值了。

     4、求f(s,t)的偏導數,然後檢查範圍0<s<1,0<t<1;(拉格朗日求極值)

     5、一般根據4的範圍有4種情況

二、程式碼就算了,邏輯很簡單,只是後面分析階段很繁瑣,且在二維中這種方式的求法適得其反。