求射线和面的交点.doc

求射线和面的交点 wtitten by silodiq 参考《Introduction to 3D Game Programming with DirectX? 9.0》 射线的表示方法 p(t) = p0 + tu; 其中p0是射线的起始点,u是射线的方向向量(需要单位化),t在[0,+无穷] 面的表示方法 由上图可以知道 n(p-p0) = 0; 设d = -np0 所以有:np+d = 0;为平面方程,其中p为平面上的任意一点,n为平面的单位法向量, 如果空间中一点Px,如果nPx + d = 0,那么Px在(np+d=0)表示的平面上,如果大于0,该点在平面的上面(法线所指的方向),如果小于0,该点在平面的下面。 3.求射线和平面的交点 要求利用上面所介绍的射线和面的交点只要把p(t)代入(np+d=0)这个方程,这样我们就得到 np(t)+d=0; n(p0+tu)+d=0; np0+tnu+d=0; t=(-d-np0)/nu; 如果t大于等于0说明射线和面有交点,根据p(t)=p0+tu;

文档评论(0)

1亿VIP精品文档

相关文档