如果我有一个由两个点p1,p2定义的线段,然后是由(x,y,z)(最低角点)定义的长度/宽度/高度(l,w,h)的矩形棱镜,如何检查线是否与棱镜相交?如果有一个交叉点也可以得到交叉点?
有人知道吗?
由于
答案 0 :(得分:0)
似乎你的棱镜是轴对齐的盒子(长方体)。
所以使用任何用于line clipping的算法 - 例如,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,检查这个点是否位于面矩形内