Shashwat Anand: > > Given 'n' circles and the co-ordinates of their center, and the radius of > > all being equal i.e. 'one', How can I take out the intersection of their > > area.
I can see two possible solutions, both approximate. In both solutions you first look if there are a pair of circles that don't intersect, in this case the intersect area is zero. You also remove all circles fully contained in another circle. The first strategy is easy to do, but it probably leads to a lower precision. Then you can sample randomly many times the rectangular area that surely contains all circles. You count how many of those random points are inside all circles. This gives you an approximate area of their intersection. Increasing the points numbers slowly increases the result precision. The second strategy is more complex. You convert your circles into polygons with a fixed number of vertices (like 50 or 100 or 1000 or more. This number is constant even if the circles don't have all the same radius). So you can turn this circle into a simple mesh of triangles (all vertices are on the circumference). Then you "subtract" the second polygonalized circle, this can create a hole and split triangles in pieces, and so on with successive circles. At the end you can compute the total area of the triangles left. This is doable, but you need time to do implement this. The advantage is that the numerical precision of the result is probably higher. If you implement this second solution you can implement the first one too, and use it as a test to avoid bugs. Visualizing the triangles with Pygame or MatPlotLib can be useful to look for bugs. Bye, bearophile -- http://mail.python.org/mailman/listinfo/python-list