workly.com
Proportion: Adding points with intersections
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.