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.
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