TCS Journal 2019 Journal Article
A time–space trade-off for computing the k-visibility region of a point in a polygon
- Yeganeh Bahoo
- Bahareh Banyassady
- Prosenjit K. Bose
- Stephane Durocher
- Wolfgang Mulzer
Let P be a simple polygon with n vertices, and let q ∈ P be a point in P. Let k ∈ { 0, …, n − 1 }. A point p ∈ P is k-visible from q if and only if the line segment pq crosses the boundary of P at most k times. The k-visibility region of q in P is the set of all points that are k-visible from q. We study the problem of computing the k-visibility region in the limited workspace model, where the input resides in a random-access read-only memory of O ( n ) words, each with Ω ( log n ) bits. The algorithm can read and write O ( s ) additional words of workspace, where s ∈ N is a parameter of the model. The output is written to a write-only stream. Given a simple polygon P with n vertices and a point q ∈ P, we present an algorithm that reports the k-visibility region of q in P in O ( c n / s + c log s + min { ⌈ k / s ⌉ n, n log log s n } ) expected time using O ( s ) words of workspace. Here, c ∈ { 1, …, n } is the number of critical vertices of P for q where the k-visibility region of q may change. We generalize this result for polygons with holes and for sets of non-crossing line segments.