空間直線與平面的交點

2021-05-27 11:00:19 字數 953 閱讀 8688

如果直線不與平面平行,將存在交點。如下圖所示,已知直線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...