如果我有一个由两个点 p1、p2 定义的线段,然后是一个由 (x,y,z((最低角点(定义的矩形棱镜,长度/宽度/高度 (l, w, h(,如何检查线是否会与棱镜相交?如果有交叉点,还要得到交叉点?
有人知道吗?
谢谢
似乎您的棱镜是轴对齐的盒子(矩形平行六面体(。
因此,请使用任何用于线条裁剪的算法 - 例如,Liang-Barsky算法的3D版本
简而言之 - 为线段制作参数方程
X = X1 + t * (X2 - X1)
Y = Y1 + t * (Y2 - Y1)
Z = Z1 + t * (Z2 - Z1)
查找与面相交的参数 t:替换方程中的X = x
或X = x + l
,找到 t,检查带有此 t 的点是否位于面矩形内