Visibility Queries in Simple Polygons and Applications

In this paper we explore some novel aspects of visibility for stationary and moving points inside a simple polygon P. We provide a mechanism for expressing the visibility polygon from a point as the disjoint union of logarithmically many canonical pieces using a quadraticspace data structure. This allows us to report visibility polygons in time proportional to their size, but without the cubic space overhead of earlier methods. The same canonical decomposition can be used to determine visibility within a frustum, or to compute various attributes of the visibility polygon efficiently. By exploring the connection between visibility polygons and shortest path trees, we obtain a kinetic algorithm that can track the visibility polygon as the viewpoint moves along polygonal paths inside P, at a polylogarithmic cost per combinatorial change in the visibility. The combination of the static and kinetic algorithms leads to a space query-time tradeoff for the visibility from a point problem and an output-sensitive algorithm for the weak visibility from a segment problem.

[1]  Leonidas J. Guibas,et al.  Data structures for mobile data , 1997, SODA '97.

[2]  Mark H. Overmars,et al.  The Design of Dynamic Data Structures , 1987, Lecture Notes in Computer Science.

[3]  Leonidas J. Guibas,et al.  The robot localization problem in two dimensions , 1992, SODA '92.

[4]  Leonidas J. Guibas,et al.  Optimal Shortest Path Queries in a Simple Polygon , 1989, J. Comput. Syst. Sci..

[5]  Ovidiu Daescu,et al.  Maintaining Visibility of a Polygon with a Moving Point of View , 1996, Inf. Process. Lett..

[6]  Robert E. Tarjan,et al.  Planar Point Location Using Persistent Search Trees a , 1989 .

[7]  Bernard Chazelle,et al.  A theorem on polygon cutting with applications , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[8]  Subhash Suri,et al.  A pedestrian approach to ray shooting: shoot a ray, take a walk , 1993, SODA '93.