如何找到两个平面的交点

How to find the intersection points of two plane

我没有通过搜索找到我的问题的任何答案。所以它要么太简单,要么太难。所以,请多多包涵。

如图所示,我有两个相交的平面。

使用 X、Y 和 Z 矩阵 (surf(X,Y,Z)) 绘制斜面。第二个平面具有相同的 X 和 Y 矩阵,只有 Z 是一个零矩阵。现在我有兴趣找到两个平面相交的 X 和 Y

无论您是从平面方程开始还是仅从值矩阵开始,解决方案都同样简单。

对于平面方程,您有两个包含三个未知数的方程。将其求解为包含两个未知数(X 和 Y)的一个方程式,您就得到了交线,您可以从中生成任何所需的交点集。

通过矩阵,您知道相关的 z 值 - 它为零。选择您最喜欢的搜索方法来查找原始 Z 矩阵中值为零的索引。您可以通过使用这些索引到 XY 矩阵来获得交点集。 (如果 Z 中的值从未完全达到零,您需要做的就是插值。)

简单的原因是 (a) 您的对象是平面,并且 (b) 其中一个对象平行于 space 的基向量。

放宽 (b) 约束只会增加必须从另一个平面中减去两个平面以允许 (b) 再次保持的复杂性。 (这仅在您没有平面方程式时才有用;如果您有,则可以应用为任意两个平面给出的解决方案,无论方向如何。)

但是,如果 (a) 放宽,问题就变得很重要 - 确定任意流形的交集 space 可能需要大量计算,因为有关游戏和机器人碰撞检测的大量文献将证明.

附录This link appears to cover the idea more explicitly,但它并未假定表面是平面,因此包含您在此处不需要的额外复杂性。