這篇文章回復了:3D Ray-Quad intersection test in java 因爲我還不能評論。三維Java平面線穿越
我的問題是,他們是怎麼得到的: 點M是否屬於這個平面,如果它滿足這個方程:n。 (M-S1)= 0
(dotProduct(n,(M-S1))== 0)如何告訴我們射線與四邊形相交?
這篇文章回復了:3D Ray-Quad intersection test in java 因爲我還不能評論。三維Java平面線穿越
我的問題是,他們是怎麼得到的: 點M是否屬於這個平面,如果它滿足這個方程:n。 (M-S1)= 0
(dotProduct(n,(M-S1))== 0)如何告訴我們射線與四邊形相交?
在我看來維基百科回答了這個問題非常好:Wiki
在類似於二維空間的方式行的方式,使用的是點斜的形式爲他們的方程描述,飛機在三維空間具有使用平面中的點和與其垂直的矢量(法向矢量)的自然描述以指示其「傾斜度」。令r0爲某點P0 =(x0, y0,z0)的位置向量,令n =(a,b,c)爲非零向量。由點P0和矢量n確定的平面 由具有位置矢量r的點 P組成,使得從P0到P畫出的矢量是與n垂直的 。回顧兩個向量垂直如果 且僅當它們的點積爲零,由此得出所需的 平面可以被描述爲一組的所有點的R,如
隨着換句話說,你有一個正常的向量一個平面和由飛機的一個點創建的矢量,以及您正在檢查的點是否在飛機上。點積告訴您有關兩個矢量之間角度的信息。因此,如果矢量平行於平面,則該點必須位於平面上。
感謝您的來源,我開始看到連接。 – Thurarcier