Compute triangulation between a pair of 3D closed curves. [V, F] = triangulatePolygonPair(POLY1, POLY2) [V, F] = triangulatePolygonPair(..., 'recenter', FLAG) Where FLAG is a boolean, specifies whether the second curve should be translated to have the same centroid as the first curve. This can improve mathcing of vertices. Default is true. Example % triangulate a surface patch between two ellipses % create two sample curves poly1 = ellipseToPolygon([50 50 40 20 0], 36); poly2 = ellipseToPolygon([50 50 40 20 60], 36); poly1 = poly1(1:end-1,:); poly2 = poly2(1:end-1,:); % transform to 3D polygons / curves curve1 = [poly1 10*ones(size(poly1, 1), 1)]; curve2 = [poly2 20*ones(size(poly2, 1), 1)]; % draw as 3D curves figure(1); clf; hold on; drawPolygon3d(curve1, 'b'); drawPoint3d(curve1, 'bo'); drawPolygon3d(curve2, 'g'); drawPoint3d(curve2, 'go'); view(3); axis equal; [vertices, faces] = triangulatePolygonPair(curve1, curve2); % display the resulting mesh figure(2); clf; hold on; drawMesh(vertices, faces); drawPolygon3d(curve1, 'color', 'b', 'linewidth', 2); drawPolygon3d(curve2, 'color', 'g', 'linewidth', 2); view(3); axis equal; See also meshes3D, triangulateCurvePair, meshSurfaceArea
Package: matgeom