【问题标题】:How to find the intersection points of two plane如何找到两个平面的交点
【发布时间】:2015-12-15 18:15:31
【问题描述】:

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

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

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

【问题讨论】:

  • 你真的有你用来生成这些点的方程,还是你只有可用的矩阵?

标签: matlab intersection plane


【解决方案1】:

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

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

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

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

放松 (b) 约束只会增加必须将两个平面相减以允许 (b) 再次保持的复杂性。 (这仅在您没有平面方程时才有用;如果有,您可以将给定的解应用于任何两个平面,而不管方向如何。)

但是,如果 (a) 被放宽,问题就变得不简单了 - 确定任意流形的交集空间可能需要相当多的计算量,有关游戏和机器人技术中碰撞检测的大量文献将证明这一点。

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

【讨论】:

    猜你喜欢
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多