% --- start of displayed preamble in the book --- % --- end of displayed preamble in the book --- defaultfont:="ptmr8r"; warningcheck:=0; beginfig(1) boolean timetofillbox; timetofillbox := true; partway := 0.9; l := .45in; u := 1.05in; n := 4; theta := 360/n; z1 = (0,u); for i := 2 upto n: z[i] = z1 rotated ((i-1)*theta); endfor forever: path p; p := z1 for j := 2 upto n: --z[j] endfor --cycle; if timetofillbox: fill p; timetofillbox := false; else: unfill p; timetofillbox := true; fi pair Z[]; for j := 1 upto n: Z[j] := partway[z[j-1],z[j]]; endfor Z1 := partway[z[n],z1]; for j := 1 upto n: x[j] := xpart Z[j]; y[j] := ypart Z[j]; endfor if not timetofillbox: l := abs(z1); fi exitif l < .05u; endfor endfig; end;