Efficient Computation of Crossing Components and Shortcut Hulls
摘要
Polygon simplification is an important building block in many geovisualization algorithms. Recently, the concept of shortcut hulls was proposed to obtain a simplified polygon that fully contains the original polygon. Given a set of potential shortcuts between the polygon vertices, the computation of the optimal shortcut hull crucially relies on identifying edge crossings among the shortcuts and computing so called crossing components. In this paper, we present novel algorithms to significantly accelerate these steps. For a simple polygon P with n vertices and a set of shortcuts \(\mathcal {C}\) , we describe an algorithm for computing all edge crossings in \(\mathcal {O}(n + m + k)\) , where \(m := |\mathcal {C}|\) and k is the number of crossings. This output-sensitive algorithm is clearly optimal and a significant improvement over general-purpose algorithms to identify edge crossings. Furthermore, we extend this algorithm to compute the crossing components in \(\mathcal {O}(\min \{n + m + k, n^2\})\) . As k could potentially be up to \(\varTheta (n^4)\) , this is a significant speed-up if only the crossing components are needed rather than each individual crossing. Finally, we propose a novel crossing component hierarchy data structure. It encodes the crossing components and allows to efficiently partition the polygon based thereupon. We show that our novel algorithms and data structures allow to significantly reduce the theoretical running time of shortcut hull computation.