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