如何检查无限线是否与3d空间中的矩形棱镜相交?

时间:2017-02-08 05:46:07

标签: math geometry linear-algebra

如果我有一个由两个点p1,p2定义的线段,然后是由(x,y,z)(最低角点)定义的长度/宽度/高度(l,w,h)的矩形棱镜,如何检查线是否与棱镜相交?如果有一个交叉点也可以得到交叉点?

有人知道吗?

由于

1 个答案:

答案 0 :(得分:0)

似乎你的棱镜是轴对齐的盒子(长方体)。

所以使用任何用于line clipping的算法 - 例如,Liang-Barsky算法的3D版本

简而言之 - 制作线段的参数方程

X = X1 + t * (X2 - X1)
Y = Y1 + t * (Y2 - Y1)
Z = Z1 + t * (Z2 - Z1)

找到与面相交的参数t:在等式中替换X = xX = x + l,找到t,检查这个点是否位于面矩形内