Math 如何检查三维空间中的无限直线是否与矩形棱镜相交?

Math 如何检查三维空间中的无限直线是否与矩形棱镜相交?,math,geometry,linear-algebra,Math,Geometry,Linear Algebra,如果我有一个由两点p1,p2定义的线段,然后是一个由(x,y,z)(最低角点)定义的长度/宽度/高度(l,w,h)的矩形棱柱,我如何检查该直线是否与棱柱相交?如果有交点的话,也可以得到交点 有人知道吗 谢谢看起来您的棱镜是轴对齐的长方体(矩形平行六面体) 因此,请使用任何算法——例如,梁巴斯基算法的3D版本 简言之,建立线段的参数方程 X = X1 + t * (X2 - X1) Y = Y1 + t * (Y2 - Y1) Z = Z1 + t * (Z2 - Z1) 找到与面相交的参数t:

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

有人知道吗


谢谢

看起来您的棱镜是轴对齐的长方体(矩形平行六面体)

因此,请使用任何算法——例如,梁巴斯基算法的3D版本

简言之,建立线段的参数方程

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

找到与面相交的参数t:替换方程中的
X=X
X=X+l
,找到t,检查此t的点是否位于面矩形内

似乎棱镜是轴对齐的长方体(矩形平行六面体)

因此,请使用任何算法——例如,梁巴斯基算法的3D版本

简言之,建立线段的参数方程

X = X1 + t * (X2 - X1)
Y = Y1 + t * (Y2 - Y1)
Z = Z1 + t * (Z2 - Z1)
找到与面相交的参数t:在方程中,替换
X=X
X=X+l
,找到t,检查该点是否位于面矩形内