Function: polygon = shape2polygon (shape)
Function: polygon = shape2polygon (…,property,value,…)

Transforms a 2D shape described by piecewise smooth polynomials into a polygon.

shape is a n-by-1 cell where each element is a pair of polynomials compatible with polyval. polygon is a k-by-2 matrix, where each row represents a vertex. The property-value pairs are passed to curve2polyline.

See also: polygon2shape, curve2poyline.

Demonstration 1

The following code

 shape = {[-93.172   606.368  -476.054   291.429; ...
           -431.196   637.253    11.085   163.791]; ...
          [-75.3626  -253.2337   457.1678   328.5714; ...
            438.7659  -653.6278    -7.9953   380.9336]; ...
          [-89.5841   344.9716  -275.3876   457.1429; ...
           -170.3613   237.8858     1.0469   158.0765];...
          [32.900  -298.704   145.804   437.143; ...
          -243.903   369.597   -34.265   226.648]; ...
          [-99.081   409.127  -352.903   317.143; ...
            55.289  -114.223   -26.781   318.076]; ...
          [-342.231   191.266   168.108   274.286; ...
            58.870   -38.083   -89.358   232.362]};

 # Estimate a good tolerance
 n  = cell2mat(cellfun(@(x)curveval(x,rand(1,10)), shape, 'uniformoutput',false));
 dr = (max(n(:,1))-min(n(:,1)))*(max(n(:,2))-min(n(:,2)))*40;
 p  = shape2polygon (shape,'tol',dr);

 figure(1)
 plotShape(shape,'-b');
 hold on;
 drawPolygon (p,'-or');
 hold off

Produces the following figure

Figure 1

Package: geometry