输入:两个3d凹面多边形 A 和 B ,单位矢量 d 。没有多边形在 t = 0时交叉。预期方向 d 不会经常变化,因此需要一些预处理阶段。
问题:确定两个凹面多边形 A 和 B 是否可以在 d 方向交叉时间 t 。换句话说:如果我们在给定方向上移动一个多边形 d ,它会与另一个多边形相交吗?
输出: 1 - 交叉存在,0 - 其他。
答案 0 :(得分:5)
首先你应该找到垂直于矢量 d 的平面。
对于这两个三维多边形,您应该计算此平面上的投影。 然后,如果投影重叠,那么3d多边形将在某个时间t相交。
现在你有一个更简单的问题:检查两个2d非凸多边形是否相交。 您可以通过简单地遍历每对边缘并检查它们是否相交来实现。