Circles intersect circles and lines at 0, 1, or 2 points. "addFirstIntersection" takes two lines, two circles, or a line and a circle,
and returns the intersection that is closest to a given point.
Please look at the source code of this page for more information.