Not exactly what you're looking for, but do a search for the comp.graphics.algorithms faq. This doc has lots of algorithms for computing things like this. Including some ideas for intersecting two polygons, calculating the intersection point of line segments and calculating centroids. Invaluable resource.