CLIPMESH2DPOLYGON Clip a planar mesh with a polygon. [NODES2, EDGES2, FACES2] = clipMesh2dPolygon(NODES, EDGES, FACES, POLY) Clips the graph defined by nodes NODES and edges EDGES with the polygon given in POLY. POLY is a N-by-2 array of vertices. The result is a new graph containing nodes inside the polygon, as well as nodes created by the intersection of edges with the polygon. Important: it is assumed that no edge crosses the polygon twice. This is the case if the polygon is convex (or nearly convex) and if the edges are small compared to the polygon. Example elli = [50 50 40 20 30]; figure; hold on; drawEllipse(elli, 'k'); poly = ellipseToPolygon(elli, 200); box = polygonBounds(poly); germs = randomPointInPolygon(poly, 100); drawPoint(germs, 'b.'); [n, e, f] = boundedVoronoi2d(box, germs); [n2, e2, f2] = clipMesh2dPolygon(n, e, f, poly); drawGraphEdges(n2, e2); fillGraphFaces(n2, f2); See also graphs, drawGraph, clipGraph
Package: matgeom