三維空間中的兩直線相交

        很多資料上提供的兩直線相交求點問題一般都是基於二維空間的,而且是直接使用座標系進行求解。實際上知道二維空間中的求法(使用座標系進行求解的),要想從中推導到三維空間中的求法是不容易的。在進行幾何問題求解時,除了使用座標系求解問題外,使用向量求解問題也許更容易。向量空間是隱藏座標系的,使用向量空間求解幾何問題比使用座標系求解問題更好的是,它將問題的解法提升到了一個宏觀的高度,並且有了基於向量空間的解法,那麼可以把這個解法直接延伸到n維都很容易。

        假設有兩直線l1和l2,它們的參數方程如下所示:(向量v1,v2均爲單位向量)

l1: P1 = R1 + t1v1;
l2: P2 = R2 + t2v2.
兩直線平行、異面和相交的判斷方法

平行:v1×v2 = 0

異面:(R2-R1, v1, v2) ≠ 0;

相交:(R2-R1, v1, v2) = 0且v1×v2 ≠ 0

若相交,那麼需要求出兩直線的交點。如下圖所示:


兩直線交點爲P,|R1P| = t1,|R2P| = t2。根據三角形正弦定理,△R1R2P中,t1/sinθ1 = t2/sinθ2 = |R1R2|/sinθ3,要求交點,可先求得t1或t2,t1,t2的值可通過正弦定理求得。兩向量夾角的正弦值是隱藏在向量外積的長度上的,如上圖所示,θ3是向量v1,v2的夾角,則|v1×v2| = sinθ3。

        可立方程:(R1-R2)×v2 = t1(v2×v1),因爲|(R1-R2)×v2| = |R1R2|sinθ1。可求得:t1 = (R1-R2)×v2/(v2×v1),同理,可求得t2 = (R2-R1)×v1/(v1×v2),將t1代入l1方程即可得到交點P,或將t2代入l2方程也可得到交點P,兩者只需求其一。

        但是在計算機中,由於同一直線,它的參數方程可有多種描述(起點可選不同的點,或者單位方向向量可不同),參數t可爲正值也可爲負值。所以需要將對兩直線相交的情況分爲四種,上述是第一種情況,第二種是隻需對l1做反向延長線進行求交,第三種是隻需對l2做反向延長線進行求交,第四種是需要對l1和l2均做反向延長線進行求交。

        第二種情況和第三種情況可視爲同一種情況,這裏只對第三種情況進行分析。第三種情況如下圖所示:


則相對第一種情況,在這種情況下,t1' = t1 = (R1-R2)×v2/(v2×v1), t2' = t2 = (R2-R1)×v1/(v1×v2),只不過t1‘的值爲正值,t2’的值爲負值

        第三種情況如下圖所示:


則相對第一種情況,在這種情況下,t1'‘ = t1 = (R1-R2)×v2/(v2×v1), t2'’ = t2 = (R2-R1)×v1/(v1×v2),只不過t1''和t2''的值均爲負值

        綜上四種情況,t1和t2的求解公式都是一樣的,即t1 = (R1-R2)×v2/(v2×v1)t2 = (R2-R1)×v1/(v1×v2)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章