CENTROIDALVORONOI2D_MC Centroidal Voronoi tesselation by Monte-Carlo.

   PTS = centroidalVoronoi2d_MC(NPTS, POLY)
   Generate points in a polygon based on centroidal voronoi tesselation.
   Centroidal germs can be computed by using the Llyod's algorithm:
   1) initial germs are chosen at random within polygon
   2) voronoi polygon of the germs is computed
   3) the centroids of each domain are computed, and used as germs of the
   next iteration

   This version uses a Monte-Carlo version of Llyod's algorithm. The
   centroids are not computed explicitly, but approximated by sampling N
   points within the bounding polygon. 

   [PTS, PATHLIST] = centroidalVoronoi2d_MC(NPTS, POLY)
   Also returns the path of each germs at each iteration. The result
   PATHLIST is a cell array with as many cells as the number of germs,
   containing in each cell the successive positions of the germ.

   PTS = centroidalVoronoi2d_MC(.., PARAM, VALUE)
   Specify one or several optional arguments. PARAM can be one of:
   * 'nIter'   specifies the number of iterations of the algorithm
       (default is 50)
   * 'nPoints' number of points for updating positions of germs at each
       iteration. Default is 200 times the number of germs.
   * 'verbose' display iteration number. Default is false.

   Example
     poly = ellipseToPolygon([50 50 40 30 20], 200);
     nGerms = 100;
     germs = centroidalVoronoi2d(nGerms, poly);
     figure; hold on;
     drawPolygon(poly, 'k');
     drawPoint(germs, 'bo');
     axis equal; axis([0 100 10 90]);
     % extract regions of the CVD
     box = polygonBounds(poly);
     [n, e] = boundedVoronoi2d(box, germs);
     [n2, e2] = clipGraphPolygon(n, e, poly);
     drawGraphEdges(n2, e2, 'b');

   See also
   graphs, boundedVoronoi2d, centroidalVoronoi2d

   Rewritten from programs found in
   http://people.scs.fsu.edu/~burkardt/m_src/cvt/cvt.html

   Reference:
    Qiang Du, Vance Faber, and Max Gunzburger,
    Centroidal Voronoi Tessellations: Applications and Algorithms,
    SIAM Review, Volume 41, 1999, pages 637-676.

Package: matgeom