Visibility and Ray Shooting Queries in Polygonal Domains Danny Z. Chen1 and Haitao Wang2 1University of Notre Dame 2Utah State University WADS 2013
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
The visibility polygon from a point q
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
A special case – ray-shooting queries
Previous work – ray shootings preprocessing time space query time Chazelle, Edelsbrunner, Grigni, Guibas, Hershberger, Sharir, Snoeyink, Suri, 94’ n log n simple polygons
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
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
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
Cone visibility The visibility is restricted by a cone q
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
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
Non-convex case Computing the convex hull for each obstacle Two sub-cases: The convex hulls are pairwise disjoint Not pairwise disjoint
Not pairwise disjoint Two convex hulls intersect each other
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
The query algorithmic scheme Given a query: solve the query on the ocean M solve the query on the bays combine the above solutions
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
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
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
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
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
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)
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
An example By using the overlapped critical constraints arrangement one point location operation is sufficient instead of two q
The remaining case: the convex hulls are not disjoint
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
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
Determining the canal: first determine four obstacle vertices junction triangles d b
Determining the canal canal gate a c x e canal d f y their intersection canal gate b
Thank You