在给定方向上两个凹多边形之间的相交

时间:2012-03-28 08:28:36

标签: algorithm 3d computational-geometry

输入:两个3d凹面多边形 A B ,单位矢量 d 。没有多边形在 t = 0时交叉。预期方向 d 不会经常变化,因此需要一些预处理阶段。

问题:确定两个凹面多边形 A B 是否可以在 d 方向交叉时间 t 。换句话说:如果我们在给定方向上移动一个多边形 d ,它会与另一个多边形相交吗?

输出: 1 - 交叉存在,0 - 其他。

1 个答案:

答案 0 :(得分:5)

首先你应该找到垂直于矢量 d 的平面。

Plane

对于这两个三维多边形,您应该计算此平面上的投影。 然后,如果投影重叠,那么3d多边形将在某个时间t相交。

现在你有一个更简单的问题:检查两个2d非凸多边形是否相交。 您可以通过简单地遍历每对边缘并检查它们是否相交来实现。