Abstract
The visibility polygon of a simple polygon P is the set of points which are visible from a visibility source in P such as a point or an edge. Since a visibility polygon is the set of points, the set operations such as intersection, union, or difference can be executed on them. The intersection (resp. union) of two visibility polygons is the set of points which are visible from both (resp. either) of the corresponding two visibility sources. The difference of two visibility polygons is the set of points which are visible from only a visibility source. Previously, the best known algorithm for the set operations of two polygons with total n vertices takes O(nlogn + k) time, where k is the output size. In this paper, we present O(n) time algorithms for computing the intersection, the union, and the difference of given two visibility polygons, which are optimal.
단순 다각형 P의 가시성 다각형을 점이나 에지와 같은 P에서의 가시원으로부터 가시적인 점들의 집합을 말한다. 가시성 다각형은 점들의 ,집합이므로 가시성 다각형들에 대해 교집합, 합집합, 차집합 등과 같은 집합 연산을 수행할 수 있다. 두 가시성 다각형의 교집합은 해당되는 두 가시원으로부터 동시에 보이는 점들의 집합이고, 합집합은 하나 이상의 가시원으로부터 보이는 점들의 집합이다. 두 가시성 다각형의 차집합은 하나의 가시원으로부터만 보이는 점들의 집합이다. 모두 n개의 정점을 가진 두 개의 일반적인 다각형에 대해 집합 연산을 수행하는 기존의 알고리즘으로 가장 효율적인 알고리즘은 O(nlogn + k) 시간이 소요된다, k는 집합 연산의 출력의 크기이다. 그러나 본 논문에서는 가시성 다각형의 특성을 이용하여 O(n) 시간에 교집합, 합집합, 차집합을 구하는 최적인 알고리즘을 제시한다.