Presentation is loading. Please wait.

Presentation is loading. Please wait.

Visibility and Ray Shooting Queries in Polygonal Domains

Similar presentations


Presentation on theme: "Visibility and Ray Shooting Queries in Polygonal Domains"— Presentation transcript:

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


Download ppt "Visibility and Ray Shooting Queries in Polygonal Domains"

Similar presentations


Ads by Google