That's a tough (and ambiguous) case.  If `closestPoint` is supposed to be on the perimeter, then I think it should always be on the perimeter.