A Time-Space Trade-off for Computing the k-Visibility Region of a Point   in a Polygon
  Let $P$ be a simple polygon with $n$ vertices, and let $q \in P$ be a point in $P$. Let $k \in \{0, \dots, n - 1\}$. A point $p \in 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 $\Omega(\log{n})$ bits. The algorithm can read and write $O(s)$ additional words of workspace, where $s \in \mathbb{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 \in P$, we present an algorithm that reports the $k$-visibility region of $q$ in $P$ in $O(cn/s+c\log{s} + \min\{\lceil k/s \rceil n,n \log{\log_s{n}}\})$ expected time using $O(s)$ words of workspace. Here, $c \in \{1, \dots, 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. 
Yeganeh Bahoo, Bahareh Banyassady, Prosenjit Bose, Stephane Durocher   and Wolfgang Mulzer
cs.CG