Abstract
Given a set \({\mathcal {P}}\) of h pairwise-disjoint polygonal obstacles with a total of n vertices in the plane, we study the problem of computing the (weak) visibility polygon from a polygonal obstacle \(P^*\) (an island) in \({\mathcal {P}}\). The problem was previously solved in \(O(n^4)\) time, which has been proved worst-case optimal. However, since h may be much smaller than n, it is desirable to have an algorithm whose running time is also a function of h. In this paper, we present such an algorithm of \(O(n^2h^2)\) time, and our algorithm improves the previous result when \(h=o(n)\). In addition, when all obstacles in \({\mathcal {P}}\) (including \(P^*\)) are convex, our algorithm runs in \(O(n+h^4)\) time.

















Similar content being viewed by others
References
Asano, T., Asano, T., Guibas, L., Hershberger, J., Imai, H.: Visibility of disjoint polygons. Algorithmica 1(1), 49–63 (1986)
Atallah, M.J., Chen, D.Z., Wagener, H.: An optimal parallel algorithm for the visibility of a simple polygon from a point. J. ACM 38(3), 516–533 (1991)
Briggs, A.J., Donald, B.R.: Visibility-based planning of sensor control strategies. Algorithmica 26, 364–388 (2000)
Chazelle, B.: Triangulating a simple polygon in linear time. Discrete Comput. Geom. 6, 485–524 (1991)
Chazelle, B., Guibas, L.: Visibility and intersection problems in plane geometry. Discrete Comput. Geom. 4, 551–589 (1989)
Chen, D.Z., Wang, H.: A nearly optimal algorithm for finding \(L_1\) shortest paths among polygonal obstacles in the plane. In: Proceedings of the 19th European symposium on algorithms (ESA), pp. 481–492 (2011)
Chen, D.Z., Wang, H.: Visibility and ray shooting queries in polygonal domains. Comput. Geom. Theory Appl. 48, 31–41 (2015)
Chen, D.Z., Wang, H.: Weak visibility queries of line segments in simple polygons. Comput. Geom. Theory Appl. 48, 443–452 (2015)
ElGindy, H., Avis, D.: A linear algorithm for computing the visibility polygon from a point. J. Algorithms 2(2), 186–197 (1981)
Ghosh, S.K.: Computing the visibility polygon from a convex set and related problems. J. Algorithms 12, 75–95 (1991)
Ghosh, S.K., Mount, D.M.: An output-sensitive algorithm for computing visibility graphs. SIAM J. Comput. 20(5), 888–910 (1991)
Guibas, L., Hershberger, J., Leven, D., Sharir, M., Tarjan, R.E.: Linear-time algorithms for visibility and shortest path problems inside triangulated simple polygons. Algorithmica 2(1–4), 209–233 (1987)
Heffernan, P., Mitchell, J.: An optimal algorithm for computing visibility in the plane. SIAM J. Comput. 24(1), 184–201 (1995)
Inkulu, R., Kapoor, S.: Planar rectilinear shortest path computation using corridors. Comput. Geom. Theory Appl. 42(9), 873–884 (2009)
Joe, B.: On the correctness of a linear-time visibility polygon algorithm. Int. J. Comput. Math. 32, 155–172 (1990)
Joe, B., Simpson, R.B.: Corrections to Lee’s visibility polygon algorithm. BIT 27, 458–473 (1987)
Kapoor, S., Maheshwari, S.N., Mitchell, J.S.B.: An efficient algorithm for Euclidean shortest paths among polygonal obstacles in the plane. Discrete Comput. Geom. 18(4), 377–383 (1997)
Lee, D.T.: Visibility of a simple polygon. Comput. Vis. Graph. Image Process. 22(2), 207–221 (1983)
Lee, D.T., Lin, A.K.: Computing the visibility polygon from an edge. Comput. Vis. Graph. Image Process. 34, 594–606 (1986)
Rohnert, H.: Shortest paths in the plane with convex polygonal obstacles. Inf. Process. Lett. 23(2), 71–76 (1986)
Suri, S., O’Rourke, J.: Worst-case optimal algorithms for constructing visibility polygons with holes. In: Proceedings of the 2nd Annual Symposium on Computational Geometry, pp. 14–23 (1986)
Welzl, E.: Constructing the visibility graph for \(n\) line segments in \(O(n^2)\) time. Inf. Process. Lett. 20, 167–171 (1985)
Acknowledgments
The authors would like to thank the anonymous reviewers for their comments that help improve the presentation of the paper. D. Z. Chen’s research was supported in part by NSF under Grant CCF-1217906. H. Wang’s research was supported in part by NSF under Grant CCF-1317143.
Author information
Authors and Affiliations
Corresponding author
Additional information
A preliminary version of this paper appeared in the Proceedings of the 39th International Colloquium on Automata, Languages, and Programming (ICALP 2012).
Rights and permissions
About this article
Cite this article
Chen, D.Z., Wang, H. Computing the Visibility Polygon of an Island in a Polygonal Domain. Algorithmica 77, 40–64 (2017). https://doi.org/10.1007/s00453-015-0058-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00453-015-0058-y