Just for clarification, I'm assuming `closestPointXY` always sets `closestPoint` to a point "on" the circle, and is not supposed to be generating points "in" the circle.