如何找到两个平面的交点

时间:2015-12-15 18:15:31

标签: matlab intersection plane

通过搜索,我找不到任何问题的答案。所以它可能是如此简单或太难。所以,请耐心等待。

我有两架飞机相互交叉,如图所示。

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

1 个答案:

答案 0 :(得分:0)

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

使用平面方程,您有三个未知数的两个方程。将其解析为两个未知数(X和Y)中的一个方程式,并且您有一条交叉线,您可以从中生成任何所需的交叉点集。

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

简单的原因是(a)你的对象是平面,(b)其中一个平行于空间的基础向量。

放宽(b)约束只增加了必须从彼此中减去两个平面以允许(b)再次保持的复杂性。 (这只有在你没有平面方程时才有用;如果你没有,你可以应用任何两个平面给出的解,无论方向如何。)

然而,如果(a)放松了,那么问题就变得非常重要 - 确定任意流形的交叉空间可能是计算密集型的,因为关于游戏和机器人中碰撞检测的大量文献将证明这一点。

附录This link appears to cover the idea more explicitly,但它不会假设曲面是平面,因此包含了您不需要的复杂性。