【发布时间】:2011-04-24 08:08:21
【问题描述】:
这是我要解决的任务:
给定一个具有 N 个顶点的多边形 A 和一个具有 M 个顶点的多边形 B,找出 A 中的线段与 B 中的线段之间的所有交点。
A 和 B 都可以是非凸的。
到目前为止,我已经实现了明显的解决方案(检查 A 中的每条边与 B 中的每条边,O(M*N))。
现在,对于某些多边形,实际上可能存在(几乎)M*N 个交叉点,因此任何此类算法的最坏情况是 O(M*N)。
我的问题是:
是否存在一种算法来确定两个非凸多边形之间的交点,在平均情况下的复杂度低于 O(N*M)
如果是,那么请给我算法的名称,如果不是 - 一些证明它是不可能的资源。
【问题讨论】:
-
这是我看过的地方之一。不过,我正在尝试实现这一点:en.wikipedia.org/wiki/Weiler%E2%80%93Atherton
-
另外,我刚刚阅读了the paper,他们似乎和我做同样的事情 - O(M*N)