Variations on visibility

  • Authors:
  • J. I. Munro;M. H. Overmars;D. Wood

  • Affiliations:
  • Department of Computer Science, University of Waterloo, WATERLOO, Ontario, Canada N2L 3G1;Department of Computer Science, University of Utrecht, P.O. Box 80.002, 3508 TA UTRECHT, The Netherlands;Department of Computer Science, University of Waterloo, WATERLOO, Ontario, Canada N2L 3G1

  • Venue:
  • SCG '87 Proceedings of the third annual symposium on Computational geometry
  • Year:
  • 1987

Quantified Score

Hi-index 0.00

Visualization

Abstract

First, we propose a general framework that captures many of the variations on visibility found in the literature. Second, we investigate two specific variations: rectangular and square visibility.Given a set of n points in the plane, two points are said to be rectangularly visible if the orthogonal rectangle with the two points as opposite vertices has no other point of the set in its interior. In this paper it is shown that all pairs of rectangularly visible points in a set of size n can be determined in &Ogr;(n log n + k) time, where k is the number of reported pairs, using &Ogr;(n) space. Also, we consider the query problem: Given a set V and an arbitrary point p1 determine those points in V that are rectangularly visible from p. A dynamic data structure is described that uses &Ogr;(n log n) space, has a query time of &Ogr;(k + log2 n), and an update time of &Ogr;(log3 n).Using a similar approach, we are able, in 3-dimensions, to solve the all pairs problem in &Ogr;((n+ k log2 n) time and &Ogr;((n + k) log n) space. The query problem in 3-dimensions, can be solved in &Ogr;((1+k) log2 n) time using &Ogr;(n log3 n).Given a set of n points in the plane, two points are said to be squarely visible if there is an orthogonal square containing the two points but has no other point of the set in its interior. We provide an &Ogr;(n log n) time and &Ogr;(n) space algorithm to determine all visibility pair. In this case the algorithm is based on a solution to the query problem that requires &Ogr;(n) space, has a query time of &Ogr;((1+k) log n), and an update time of &Ogr;(log n).