Draw a filled polygon.
Add a patch representing the polygon(s) p in the current axes.
Multiple property-value pairs may be specified, but they must
appear in pairs. These arguments are passed to the function patch
.
If the first argument hax is an axes handle, then plot into this
axes, rather than the current axes returned by gca
.
If p is a cell, each element of the cell is processed in sequence.
The optional return value h is a vector of graphics handles to the created patch objects.
For example:
Draw a polygon with default filling color and red edges.
pol = [1 2; 7 4; 4 7; 1 2; NaN NaN; 2.5 3; 5.5 4; 4 5.5; 2.5 3]; h = drawFilledPolygon (pol, 'edgecolor', 'r');
See also: drawPolygon, polygon2patch, patch.
The following code
figure (1) clf; pol = [1 2; 7 4; 4 7; 1 2; NaN NaN; 2.5 3; 5.5 4; 4 5.5; 2.5 3]; subplot(131) drawFilledPolygon(pol) axis tight equal off subplot(132) drawFilledPolygon(pol, 'facecolor', 'c', 'linestyle', '--', 'edgecolor', 'r') axis tight equal off subplot(133) R = createRotation (polygonCentroid (splitPolygons(pol){1}), pi/6); pol2 = transformPoint (pol, R); drawFilledPolygon(pol, 'linestyle', 'none') drawFilledPolygon(gca, pol2, 'facealpha', 0.5) axis tight equal off
Produces the following figure
Figure 1 |
---|
The following code
pol = [2 2; 6 2; 6 6; 2 6; 2 2; NaN NaN; 3 3; 3 5; 5 5; 5 3; 3 3]; n = 5; alpha = linspace(0.1, 1, n); theta = linspace(pi / 3, 0, n); cpol = cell(n, 1); for i = 1:n cpol{i} = transformPoint (pol, createRotation (theta(i))); endfor h = drawFilledPolygon(cpol, 'linestyle', 'none'); for i = 1:n-1 set(h(i), 'facealpha', alpha(i)) endfor axis tight equal off
Produces the following figure
Figure 1 |
---|
Package: geometry