getPerimeterPoint(Point source, Point p) Returns the intersection of the bounding rectangle and the
straight line between the source and the specified point p.
Returns the intersection of the bounding rectangle and the
straight line between the source and the specified point p.
The specified point is expected not to intersect the bounds.