Download presentation
Presentation is loading. Please wait.
Published byŌΣολομών Ιωαννίδης Modified over 6 years ago
1
Computing the Visibility Polygon of an Island in a Polygonal Domain
Danny Z. Chen and Haitao Wang University of Notre Dame Indiana, USA ICALP 2012
2
The visibility polygon
The point case
3
The visibility polygon (the segment case)
the weak visibility polygon
4
The visibility polygon (the island case)
light
5
Defining “visible” Two points p and q are visible to each other if the line segment joining them is in the polygon p q
6
Defining “visible” A points p is (weakly) visible to a region R if p is visible to at least one point of R q R w p
7
Previous work The point case: O(n) time The segment case: O(n) time
ElGindy and Avis 81’, Lee 83’, Joe 90’, Joe and Simpson 87’ n: the number of vertices of the polygon The segment case: O(n) time Guibas et al. 87’ The island case: O(n+m) time Ghosh 91’ m: the number of vertices of the island
8
A polygonal domain A set of h disjoint polygonal obstacles of totally n vertices Free space: the space outside the obstacles
9
The visibility polygon in a polygonal domain
The point case
10
The visibility polygon in a polygonal domain (cont.)
The segment case
11
The visibility polygon in a polygonal domain (cont.)
The island case island
12
Previous work and our result
The point case O(nlog n) time, Suri and O’Rourke 86’, Asano et al. 86’ O(n+hlogh) time, Heffernan and Mitchell 95’ The segment case O(n4) time, Suri and O’Rourke 86’ Lower bound: Ω(n+h4) time The island case No previous work Our result: A first-known algorithm: O(n2 h2) time, worst-case optimal If all obstacles are convex, O(n+h4) time
13
Our approaches A generalization of Suri and O’Rourke’s algorithm (the SO algorithm) to convex chains A new bound on the SO algorithm: O(n4) -> O(n2h2) Goal: computing the visibility polygon of P* P*: the island Reduce the problem to computing the visibility polygon of convex chains
14
The SO algorithm Do a rotational sweeping around each vertex v
Generate some triangles visible to s w s v w u
15
The SO algorithm Do a rotational sweeping around each vertex v
Generate some triangles visible to s The visibility polygon of s is the union of all such triangles w s v u
16
The time analysis of the SO algorithm
A rotational sweeping on each vertex generates O(n) triangles O(n2) triangles in total A new bound: O(nh) O(n2 h2) time to compute the union of the triangles
17
Generalize the SO algorithm to a convex chain
s is a convex chain of O(n) vertices A naive approach: apply the SO algorithm on each edge Sweep the tangent lines of s, generating O(n) triangles u The number of triangles generated is O(nh) s v w
18
Reducing P* to convex chains
If the island P* is convex Compute the visibility polygon of the boundary of P* P*
19
Reducing P* to convex chains (cont.)
P* is not convex but the convex hull of P* does not intersect any obstacle Compute the visibility polygon of the convex hull of P* P*
20
The convex hull of P* intersecting other obstacles
Key: how to determine the visibility polygon of the purple side? The visibility polygon of P* is the union of the visibility polygons of the two boundary portions Observation: A point outside the canal is visible to the purple side if and only if it is visible to a canal gate canal gate x bays e P* P canal q f y q canal gate p
21
Determining the canal canal gate a c x e P* P d canal f y
the corridor path canal gate b
22
Determining a, b, c, and d a c junction triangles P* P d b
23
Conclusion Compute the visibility polygon of an island in a polygonal domain O(n2h2) – worst case optimal O(n+h4) for the convex case Match the lower bound
24
Thank You
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.