The Visual Computer

, Volume 2, Issue 6, pp 342–357 | Cite as

Visibility between two edges of a simple polygon

  • David Avis
  • Teren Gum
  • Godfried Toussaint


One of the most recurring themes in many computer applications such as graphics automated cartography, image processing and robotics is the notion of visibility. We are concerned with the visibility between two edges of a simplen-vertex polygon. Four natural definitions of edge-to-edge visibility are proposed. There existO(nlogn) algorithms and complicatedO(nlog logn) algorithms to solve this problem partially and indirectly. A linear running time, and thus optimal algorithm is presented to determine edge-to-edge visibility under any of the four definitions. This simple, efficient, and direct algorithm without computing the triangulation of the simple polygon also identifies the visibility region if it exists.

Key words

Visibility Polygon Weak visibility Convex hull Hidden line problems Monotone polygons Jordan sorting Computational geometry Graphics Algorithms Geometric complexity 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Asano T (1985) Efficient algorithm for finding the visibility polygon for a polygonal region with holes. Tech Rep, Osaka Electro Communication UniversityGoogle Scholar
  2. Avis D, ElGindy H (1983) A combinatorial approach to polygon similarity. IEEE Trans Inf Theory. vol IT-29: 148–150CrossRefGoogle Scholar
  3. Avis D, Toussaint GT (1981) An optimal algorithm for determining the visibility of a polygon from an edge. IEEE Trans Comput (December 1986) C-30: 910–914Google Scholar
  4. Brown MR, Tarjan RE (1980) Design and analysis of a data structure for representing sorted lists. SIAM J Comput 9: 594–614CrossRefGoogle Scholar
  5. Chazelle B (1982) A theorem on polygon cutting with applications. 23rd Annual IEEE Symposium on Foundations of Computer Science, pp 339–349Google Scholar
  6. Chu WH, Lee DT (1983) The hidden line elimination problem revisited. Proc Internat Conf on Advanced Automation, Taipei, Taiwan (December 1983), pp 469–480Google Scholar
  7. Chavátal V (1975) A Combinatorial theorem in plane geometry. J Comb Theory [Ser B] 18: 39–41CrossRefGoogle Scholar
  8. Chazelle B, Guibas LJ (1985) Visibility and intersection problems in plane geometry. Proc Symposium on Computational Geometry, Baltimore (June 1985) pp 135–146Google Scholar
  9. Donald BR (1983) Hypothesizing channels through free-space in solving the findpath problem, Massachussetts Institute of Technology, Artificial Intelligence Laboratory (June 1983) A.I. Memo no. 738Google Scholar
  10. Davis L, Benedikt M (1979) Computational models of space: Isovists and isovist fields. Comp Graphics and Image Proc. 11: 49–72Google Scholar
  11. Edelsbrunner H (1983) Problem P 36. Bull. EATCS 21 (October 1983), pp 195Google Scholar
  12. ElGindy H (1980) Visibility in polygons with applications. M Sc Thesis (November 1980) School of Computer Science, McGill UniversityGoogle Scholar
  13. ElGindy H (1985) Hierarchical decomposition of polygons with applications. Ph D Thesis May 1985, School of Computer Science, McGill UniversityGoogle Scholar
  14. ElGindy H, Avis D (1981) A finear algorithm for computing the visibility polygon from a point J Algorithms 2: 180–197CrossRefGoogle Scholar
  15. ElGindy H, Avis D, Toussaint GT (1983) Applications of a two-dimensional hidden-line algorithm to other geometric problems. Computing 31: 191–202Google Scholar
  16. Freeman H, Loutrel PP (1967) An algorithm for the two-dimensional ‘hiden line’ problem”. IEEE Trans Electronic Computers EC-16(6): 784–790Google Scholar
  17. Griffiths JG (1978) Bibliography of hidden-line and hidden-surface algorithms. Computer Aided Design 10(3): 203–206CrossRefGoogle Scholar
  18. Guibas L, Hershberger J, Leven D, Sharir M, Tarjan RE (1986) Linear time algorithm for visibility and shortest path problem inside simple polygon. Proc Symposium on Computational Geometry, Yorktown Heights, New York (June 1986)Google Scholar
  19. Garey MR, Johnson DS, Preparata FP, Tarjan RE (1978) Triangulating a simple polygon. Int Proc Lett 7: 175–179CrossRefGoogle Scholar
  20. Hightower DW (1969) A solution to line-routing problems on the continuous plane. Proc of Design Automation Workshop, pp 1–24Google Scholar
  21. Hoffmann K, Mehlhorn K (1984) Intersecting a line and a simple polygon. Bull EATCS 22 (February 1984), pp 120–121Google Scholar
  22. Hoffman K, Mehlhorn K, Rosenstiehl P, Tarjan RE (1985) Sorting Jordan sequences in linear time. Proc Symposium on Computational Geometry, Baltimore (June 1985) pp 196–203Google Scholar
  23. Huddleston S, Mehlhorn K (1982) A new data structure for representing sorted lists. Acta Inf 17: 157–184CrossRefGoogle Scholar
  24. Knuth DE (1973) The art of computer programming, vol III: Sorting and searching, Addison-Wesley, Reading, MassGoogle Scholar
  25. Lee DT (1983) Visibility of a simple polygon. Comput Vision, Graphics and Imagae Processing 22 207–221Google Scholar
  26. Lee DT, Lin A (1984) Computing the visibility polygon from an edge. Tech Rep, Northwestern UniversityGoogle Scholar
  27. Lee DT, Preparata FP (1979) An optimal algorithm for finding the kernel of a polygon. J ACM 26(3): 415–421CrossRefGoogle Scholar
  28. Lee DT, Preparata FP (1984) Euclidean shortest paths in the presence of rectilinear barriers. Networks 14: 393–410Google Scholar
  29. Lozano-Perez T, Wesley M (1979) An algorithm for planning collision-free paths among polyhedral obstacles. Commun ACM 22: 560–570CrossRefGoogle Scholar
  30. Mater D, Salveter C (1981) Hysterical B-trees. Inf Proc Lett 12: 199–202CrossRefGoogle Scholar
  31. Mehlhorn K (1984) Data structures and efficient algorithms, vol 1: Sorting and searching, Springer VerlagGoogle Scholar
  32. Melkman AA (1985) On computing the visibility polygon from a point. Tech Rep (April 1985) CS-85-260, Ben Gurion University, IsraelGoogle Scholar
  33. Nilsson NJ (1969) A mobile automaton: An application of artificial intelligence techniques. Proc IJCAI-69, pp 509–520Google Scholar
  34. Preparata FP, Shamos MI (1985) Computational geometry: An introduction. Springer-Verlag pp 160–165Google Scholar
  35. Rappaport D (1986) A linear algorithm for eliminating hidden line from a polygonal cyclinder. The Visual Computer, 2: 44–53CrossRefGoogle Scholar
  36. Rappaport D, Toussaint GT (1985) A simple linear hidden-line algorithm for star-shaped polygons. Pattern Recognition Lett 3: 35–39CrossRefGoogle Scholar
  37. Rohnert H (1985) Shortest paths in the plane with convex polygonal obstacles. Tech Rep A 85/06, University of SaarbrükkenGoogle Scholar
  38. Shamos MI (1977) Problems in computational geometry. Carnegie Mellon UniversityGoogle Scholar
  39. Shapiro LG, Haralick RM (1980) Algorithms for inexact matching. Proc 5th Internat Conf on Pattern Recognition, Miami Beach, pp 202–207Google Scholar
  40. Shapiro LG, Haralick RM (1979) Decomposition of two dimensional shapes by graph-theoretic clustering. IEEE Trans on Pattern Analysis and Machine Intelligence (January 1979) vol. PAMI-1, pp 10–20Google Scholar
  41. Suri S, O'Rourke J (1985) Worst-case optimal algorithms for constructing visibility polygons with holes. Tech Rep (August 1985) JHU/EECS-1985/12Google Scholar
  42. Sack JR, Toussaint GT (1984) Translating polygons in the plane. Tech Rep SCS-TR-47 (March 1984) Carleton UniversityGoogle Scholar
  43. Stoer J, Witzgall C (1970) Convexity and optimization in finite dimensions I. Springer-VerlagGoogle Scholar
  44. Toussaint GT (1980) Pattern recognition and geometrical complexity. Proc 5th Internat Conf on Pattern Recognition (December 1980) Miami Beach, FLGoogle Scholar
  45. Toussaint GT (1983) Solving geometric problems with the rotating calipers. Proc MELECON '83, Athens, GreeceGoogle Scholar
  46. Toussaint GT (1985) Shortest path solves edge-to-edge visibility in a polygon. Tech Rep SOCS-85. 19 (September 1985) McGill University, also to appear in: Pattern recognition LettGoogle Scholar
  47. Toussaint GT (1985) Shortest path solves translation separability of polygons. Tech Rep SOCS-85.27. (October 1985) McGill UniversityGoogle Scholar
  48. Toussaint GT (1986) A linear time algorithm for solving the strong hidden-line problem in a simple polygon. Tech Rep SOCS-86.2 (January 1986) McGill UniversityGoogle Scholar
  49. Toussaint GT, ElGindy H (1984) Separation of two monotone polygons in linear time. Robotica 2:215–220Google Scholar
  50. Toussaint GT, Sack J-R (1983) Some new results on moving polygons in the plane. Proc Robotic Intelligence and Productivity Conference, Detroit, pp 158–163Google Scholar
  51. Tarjan RE, Van Wyk C (1986) A linear time algorithm for triangulating simple polygons. Proc Eighteenth Annual ACM Symposium on Theory of Computing, pp 380–388Google Scholar
  52. Tarjan RE, Van Wyk C (submitted) AnO(nloglogn)-time algorithm for triangulating simple polygons. SIAM J ComputGoogle Scholar
  53. Yao FF (1983) On the priority approach to hidden surface algorithms. Proc 21st Annual Symposium on Foundations of Computer Science (October 1983), pp 301–307Google Scholar

Copyright information

© Springer-Verlag 1986

Authors and Affiliations

  • David Avis
    • 1
  • Teren Gum
    • 1
  • Godfried Toussaint
    • 1
  1. 1.School of Computer ScienceMcGill UniversityMontrealCanada

Personalised recommendations