我有两条位于同一平面上的 3D 线。line1
由点 ( x1, y1, z1
) 及其方向向量 ( a1, b1, c1
)line2
定义,而由点 ( x2, y2, z2
) 及其方向向量 ( a2, b2, c2
) 定义。那么两条线的参数方程是
x = x1 + a1*t; x = x2 + a2*s;
y = y1 + b1*t; y = y2 + b2*s;
z = z1 + c1*t; z = z2 + c2*s;
如果两个方向向量都是非零的,我们可以通过将上面方程的右侧相等并从三个中的任何两个求解t
和来轻松找出相交节点的位置。s
但是,有可能a1 b1 c1 a2 b2 c2
并非都是非零的,因此我无法以相同的方式求解这些方程。我目前的想法是逐案处理这个问题,比如
case1: a1 = 0, others are nonzero
case2: a2 = 0, others are nonzero
case3: b1 = 0, others are nonzero
...
但是,总共有这么多的案例,执行会变得混乱。有什么好的方法可以解决这个问题吗?有什么参考吗?非常感谢!