1 numeric paperh, paperw;
10 numeric page; page := 0;
12 def squares(expr hsqsz, vsqsz) =
16 numeric ox, oy, lx, ly;
18 w = floor((paperw - 2 margin)/hsqsz);
19 h = floor((paperh - 2 margin)/vsqsz);
20 ox = (paperw - w * hsqsz)/2; lx = ox + w * hsqsz;
21 oy = (paperh - h * vsqsz)/2; ly = oy + h * vsqsz;
23 pickup pencircle scaled fine;
24 for i = ox step hsqsz until lx:
25 draw (i, oy) .. (i, ly);
27 for i = oy step vsqsz until ly:
28 draw (ox, i) .. (lx, i);
33 def hexes(expr hexsz) =
36 numeric ox, oy, lx, ly;
39 numeric a, b, c, d, e;
42 w = floor((paperw - 2 margin)/(3 hexsz) - 1/2);
43 h = floor((paperh - 2 margin)/(2 v) - 1/2);
44 ox = (paperw - (w + 1/2) * 3 hexsz)/2; lx = ox + w * 3 hexsz;
45 oy = (paperh - (h + 1/2) * 2 v)/2; ly = oy + h * 2 v;
47 pickup pencircle scaled fine;
48 for i = ox step 3 hexsz until lx:
49 a := i + 1/2 hexsz; b := i + 2 hexsz; c := i + 3/2 hexsz;
50 for j = oy step 2 v until ly:
51 d := j + v; e := j + 2 v;
52 draw (a, e) -- (i, d) -- (a, j) -- (c, j) -- (b, d) -- (c, e);
54 draw (b, d) -- (b + hexsz, d);
57 draw (a, e) -- (c, e);