summaryrefslogtreecommitdiff
path: root/info/examples/lgc2/3-1-8.mp
blob: 087703d79c66ee1f7579655a6e3443c448c2db0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
% --- 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;