Compute closest visible point in simple polygon

129 Views Asked by At

Given a point $p$ inside a simple polygon $P$ and another point $q$ that is not necessarily in $P$, I want to compute the point closest to $q$ that is visible to $p$ within $P$. In other words, let $V = \{ q'~|~pq' \subseteq P \}$. I want to compute the $q' \in V$ that is closest (by Euclidean distance) to $q$.

I'm aware of algorithms for computing the visibility polygon within a simple polygon (e.g. https://cs.uwaterloo.ca/research/tr/1987/CS-87-03.pdf), but I'm wondering if there is a way to compute the closest point that doesn't require computing the entire visibility polygon.