【发布时间】:2012-03-15 13:35:41
【问题描述】:
假设我们有两个不相交的凹二维多边形(A,B)。问题是找到具有以下属性的边对集合(每对由多边形 A 的一条边和多边形 B 的边组成):对中的每个项目必须彼此可见。一条边对另一条边是可见的,如果它们之间没有障碍物(图中有三种情况,用红叉标记,当这条规则被打破时)。
我知道如何使用光线和边的顶点在 O(n^2) 中解决这个问题。但是太慢了。
【问题讨论】:
-
每对边形成一个四边形。本质上,您需要找出是否有任何其他边与该四边形相交。
-
蛮力算法将是 O(n^3):对于每一对,您再次遍历边缘以查看该边缘是否阻塞。你是怎么做到 O(n^2) 的?
-
这看起来像是艺术画廊问题的变体,en.wikipedia.org/wiki/Art_gallery_problem 可能会给你一些指点。
标签: algorithm computational-geometry