Download presentation
Presentation is loading. Please wait.
Published byUlla Larsson Modified over 6 years ago
1
Visibility and Ray Shooting Queries in Polygonal Domains
Danny Z. Chen1 and Haitao Wang2 1University of Notre Dame 2Utah State University WADS 2013
2
A polygonal domain A set of h disjoint polygonal obstacles with a total of n vertices Free space: the space outside the obstacles h<<n is possible
3
The visibility polygon from a point
q
4
Visibility queries Given a query point q,
report Vis(q): the visibility polygon of q k: = |Vis(q)| Goal: design data structures to support efficient visibility queries
5
A special case – ray-shooting queries
6
Previous work – ray shootings
preprocessing time space query time Chazelle, Edelsbrunner, Grigni, Guibas, Hershberger, Sharir, Snoeyink, Suri, 94’ n log n simple polygons
7
Previous work and our result – ray shootings
preprocessing time space query time Pocchiola, 90’ n2 logn Chazelle et al. 94’ nh1/2+nlogn +h3/2logh n h1/2logn Agarwal and Sharir, 96’ (nlogn+h2)logh (n+h2)logh log2nlog2h Our result n+h2poly(logh) n+h2 polygonal domains
8
Previous work – visibility queries
preprocessing time space query time Bose, Lubiw, and Munro, 02’ n3 logn n3 k + log n Aronov, Guibas, Teichmann, and Zhang, 02’ n2 log n n2 k + log2 n simple polygons
9
Previous work and our results – visibility queries (m=min{k,h})
preprocessing time space query time Zarei and Ghodsi, 08’ n3 log n n3 k+mlog n Inkulu and Kapoor, 09’ n2 log n n2 k+h+mlog2 n n2 h3 n2 h2 klog n Lu et al., 11’ k+log2 n+hlogn/h Our result 1 k+log2n+mlogn Our result 2 n+h2logh n+h2 polygonal domains
10
Cone visibility The visibility is restricted by a cone q
11
Our approach An extended corridor structure
partitions the free space into an “ocean” M, and multiple “bays” and “canals” M is bounded by a set of convex chains Use the visibility complex of convex objects (Pocchiola and Vegter 96’) Each bay or canal is a simply polygon Use data structures on simply polygons The query result is the combination of that on M and those on bays and canals
12
The convex case: all obstacles are convex
Ray-shootings (Pocchiola and Vegter 96’) Preprocessing: O(n+h2 poly(log n)) time and O(n+h2) space Query: O(log n) time Visibility queries (our result, using visibility complex) Preprocessing: O(n+h2 log h) time and O(n+h2) space Query: O(k+ h’ log n) time h’: the number of obstacles visibile to the query point
13
Non-convex case Computing the convex hull for each obstacle
Two sub-cases: The convex hulls are pairwise disjoint Not pairwise disjoint
14
Not pairwise disjoint Two convex hulls intersect each other
15
First sub-case: convex hulls pairwise disjoint
Bays: The regions between the convex hulls and the obstacles Each bay is a simple polygon Each bay has a gate The ocean M: the free space minus the bays bays bays
16
The query algorithmic scheme
Given a query: solve the query on the ocean M solve the query on the bays combine the above solutions
17
Ray-shootings Given a ray r, let q be the origin, which in M or a bay
If q is in M determine the first point p on the convex hulls hit by r two cases: p is on an obstacle or a bay gate p on an obstacle: done p on a bay gate: enter the bay p q p q
18
Ray-shootings (cont.) If q is in a bay B
determine the first point p on the boundary of B hit by r if p is on an obstacle done else (p is on the gate) goes into M the case where q is in M p p q
19
Ray-shootings (cont.) Preprocessing
Visibility complex based approach on M (PV 96’) Preprocessing: O(n+h2 poly(log n)) time and O(n+h2) space Query: O(log n) time The data structures for simple polygons on all bays (CEGGHSSS 94’) Preprocessing: O(n) time and space
20
Visibility queries Given a query point q, in M or a bay If q is in M
compute Vis(q,M): the visibility region in M For each portion of the boundary of Vis(q,M) on a gate compute the visibility region through the cone q
21
Visibility queries If q is in bay B
Compute Vis(q,B): the visibility region in B If a portion of the gate is on the boundary compute the cone visibility outside the bay solved in the similar way as the previous case q
22
Visibility queries – the preprocessing
The preprocessing on M Build our cone visibility query data structure on M Preprocessing: O(n+h2 log h) time and O(n+h2) space Query: O(k+ h’ log n) time The preprocessing on all bays First approach Exterior visibility decomposition (Aronov et al. 02’) preprocessing: O(n2logn) time and O(n2) space query: O(k+logn) Second approach: The ray-shooting data structure on simple polygons preprocessing: O(n) time and space query: O(klogn)
23
Exterior visibility decomposition
Critical constraints of the bay all points in the same cell has the same combinatorial representation of the visibility polygon in the bay through the gate Overlap the critical constraint arrangement of all bays of the same obstacle a single point location is sufficient q
24
An example By using the overlapped critical constraints arrangement
one point location operation is sufficient instead of two q
25
The remaining case: the convex hulls are not disjoint
26
The remaining case: the convex hulls are not disjoint
The four vertices x, e, f, y can be determined by triangulation Two canal gates: xe and fy x bays e canal bays f y
27
A key property of canals
For any observer q outside the canal q cannot see “through” the canal via the two gates the visibility polygons of q in the canal through the two gates do not intersect x e canal f y q
28
Determining the canal: first determine four obstacle vertices
junction triangles d b
29
Determining the canal canal gate a c x e canal d f y
their intersection canal gate b
30
Thank You
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.