Next: clip, Previous: draw, Up: Drawing commands
void fill(picture pic=currentpicture, path g, pen p=currentpen);
Fill the interior region bounded by the cyclic path g
on the picture
pic
, using the pen p
.
There is also a convenient filldraw
command, which fills the path
and then draws in the boundary. One can specify separate pens for each
operation:
void filldraw(picture pic=currentpicture, path g, pen fillpen=currentpen, pen drawpen=currentpen);
This fixed-size version of fill
allows one to fill an object
described in PostScript
coordinates about the user coordinate
origin
:
void fill(pair origin, picture pic=currentpicture, path g, pen p=currentpen);
This is just a convenient abbreviation for the commands:
picture opic; fill(opic,g,p); add(origin,pic,opic);
Lattice gradient shading varying smoothly over a two-dimensional
array of pens p
, using fillrule fillrule
, can be produced with
void latticeshade(picture pic=currentpicture, path g, pen fillrule=currentpen, pen[][] p)The pens in
p
must belong to the same color space. One can use the
functions rgb(pen)
or cmyk(pen)
to promote pens to a
higher color space, as illustrated in the example file
latticeshading.asy
.
Axial gradient shading varying smoothly from pena
to penb
in the
direction of the line segment a--b
can be achieved with
void axialshade(picture pic=currentpicture, path g, pen pena, pair a, pen penb, pair b);
Radial gradient shading varying smoothly from
pena
on the circle with center a
and radius ra
to
penb
on the circle with center b
and radius rb
is similar:
void radialshade(picture pic=currentpicture, path g, pen pena, pair a, real ra, pen penb, pair b, real rb);Illustrations of radial shading are provided in the example files
shade.asy
and ring.asy
.
Gouraud shading using fillrule fillrule
and the vertex colors in the
pen array p
on a triangular lattice defined by the vertices
z
and edge flags edges
is implemented with
void gouraudshade(picture pic=currentpicture, path g, pen fillrule=currentpen, pen[] p, pair[] z, int[] edges);The pens in
p
must belong to the same color space.
Illustrations of Gouraud shading are provided in the example files
Gouraud.asy
and sphere.asy
.
The following routine uses evenodd
clipping together with the
^^
operator to unfill a region:
void unfill(picture pic=currentpicture, path g);