如果直線不與平面平行,將存在交點。如下圖所示,已知直線l過點m(m1,m2,m3),且方向向量為vl(v1,v2,v3),平面p過點n(n1,n2,n3),且法線方向向量為vp(vp1,vp2,vp3),求得直線與平面的交點o的座標(x,y,z):
將直線方程寫成引數方程形式,即有:
x = m1+ v1 * t
y = m2+ v2 * t (1)
z = m3+ v3 * t
將平面方程寫成點法式方程形式,即有:
vp1 * (x – n1) + vp2 * (y – n2) + vp3 * (z – n3) = 0 (2)
則直線與平面的交點一定滿足式(1)和(2),聯立兩式,求得:
t = ((n1 – m1)*vp1+(n2 – m2)*vp2+(n3 – m3)*vp3) / (vp1* v1+ vp2* v2+ vp3* v3) (3)
如果(3)式中分母(vp1* v1+ vp2* v2+ vp3* v3)為0,則表示直線與平面平行,即直線與平面沒有交點。求解出t後,然後將t代入式(1)即可求得交點o的座標(x,y,z)。定義乙個求直線與平面交點座標的函式calplanelineintersectpoint(),其**如下:
/// /// 求一條直線與平面的交點
///
/// 平面的法線向量,長度為3
/// 平面經過的一點座標,長度為3
/// 直線的方向向量,長度為3
/// 直線經過的一點座標,長度為3
/// 返回交點座標,長度為3
private float calplanelineintersectpoint(float planevector, float planepoint, float linevector, float linepoint)
else
return returnresult;
}
空間直線與平面的交點
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!如果直線不與平面平行,將存在交點。如下圖所示,已知直線l過點m m1,m2,m3 且方向向量為vl v1,v2,v3 平面p過點n n1,n2,n3 且法線方向向量為vp vp1,vp2,vp3 求得直線與平面的交點o的座標 x,y,z 將直線方程...
關於直線 折線分割平面,平面的分割空間問題
1 n條直線最多分平面問題 題目大致如 n條直線,最多可以把平面分為多少個區域。析 可能你以前就見過這題目,這充其量是一道初中的思考題。但乙個型別的題目還是從簡單的入手,才容易發現規律。當有n 1條直線時,平面最多被分成了f n 1 個區域。則第n條直線要是切成的區域數最多,就必須與每條直線相交且不...
向量法計算平面與直線的交點
已知有平面上三個點 abc 座標,直線上兩個點 de 座標,求平面abc與直線de的交點座標。解 平面與直線的交點 param planta param plantb param plantc param lined param linee return public static double g...