% --- start of displayed preamble in the book ---
input hatching;
% star macro defined as above
% --- end of displayed preamble in the book ---

% graphic converted to gray in book using 'color2gray'

vardef star(expr n) =
for i_:=0 upto 2n-1:
 if odd i_: 1/2 fi (right rotated (180*(i_/n))) --
endfor cycle
enddef;

defaultfont:="ptmr8r";
warningcheck:=0;
beginfig(1)
path p;
p:=star(10) xscaled 20mm yscaled 20mm;
save draw_hatched_band;
vardef draw_hatched_band(expr za,zb,a,l,d) =
 save n_; n_:=length(za-zb)/l;
 for i_:=0 upto ceiling n_:
   fill star(10) xscaled 2/5l yscaled 2/5l
     shifted (i_/n_)[za,zb]
     withcolor (i_/n_)[green,blue];
 endfor
enddef;
hatchfill p withcolor (red+green)
           withcolor (45,10bp,-1bp);
endfig;
end;