% Freely adapted from Escher's drawing 73
% From: Doris Schattschneider
% M.C. Escher
% Visions of Symmetry
% W.H. Freeman and Company
% New York
% ISBN: 0-7167-2126-0
mpgraph:=1; input mp-tool;
prologues:=2;
beginfig(1);
pickup pencircle scaled 1;
pair p[], xshift, yshift, origin, offset;
path line[], fish, drawing;
color WHITE, GREY, C[];
WHITE = (1,1,1);
GREY = 0.85(1.0,1.0,1.0);
width = 279.4mm;
height = 215.9mm;
s := 0.055;
p1 = (4905,9000-2925);
p2 = (1215,9000-4890);
p3 = (4890,9000-8985);
p4 = (4770,9000-4155);
p5 = (4380,9000-5130);
p6 = (3840,9000-5040);
p7 = (2940,9000-4590);
p8 = (2025,9000-4515);
p9 = (1935,9000-5295);
p10 = (2445,9000-5925);
p11 = (2835,9000-6780);
p12 = (3225,9000-7425);
p13 = (2160,9000-8115);
p14 = (1455,9000-9240);
p15 = (3225,9000-9750);
p16 = (3210,9000-9735);
line1 = (p1..p4..p5) shifted -p1;
line2 = (p5..p6..p7..p8..p2) shifted -p1;
line3 = (p2..p9..p10..p11..p12) shifted -p1;
line4 = (p12..p13..p14) shifted -p1;
line5 = (p14..p15..p3) shifted -p1;
line6 = (p5..p4..p1) shifted -p1;
line7 = (p2..p8..p7..p6..p5) shifted -p1;
line8 = (p12..p11..p10..p9..p2) shifted -p1;
line9 = (p14..p13..p12) shifted -p1;
line10 = (p3 ..p15..p14) shifted -p1;
fish = line1--line2--line3--line4--line5--
line7 shifted (p3 - p2)--
line6 shifted (p3 - p2)--
line10 shifted (p1 - p2)--
line9 shifted (p1 - p2)--
line8 shifted (p1 - p2)--cycle;
p17 = (2880,9000-9750);
p18 = (2370,9000-9720);
p19 = (2055,9000-9585);
p20 = (1605,9000-9360);
p22 = (2355,9000-9540);
p23 = (2700,9000-9490);
p24 = (2820,9000-9540);
p25 = (2910,9000-9225);
p26 = (3075,9000-8880);
p27 = (3300,9000-8640);
p28 = (3420,9000-8400);
p29 = (3420,9000-8175);
p30 = (3375,9000-8025);
p31 = (3450,9000-8340);
p32 = (3420,9000-8820);
p33 = (3300,9000-9225);
p34 = (3000,9000-9645);
p35 = (1935,9000-9270);
p36 = (2385,9000-9225);
p37 = (2775,9000-9060);
p38 = (3030,9000-8895);
p39 = (3000,9000-9105);
p40 = (2865,9000-9300);
p41 = (2820,9000-9585);
p42 = (2820,9000-9570);
p43 = (3885,9000-5205);
p44 = (4005,9000-5565);
p45 = (3990,9000-5880);
p46 = (3045,9000-4725);
p47 = (3405,9000-5580);
p48 = (3555,9000-6270);
p49 = (3795,9000-7035);
p50 = (2115,9000-4605);
p51 = (2595,9000-5190);
p52 = (3015,9000-6015);
p53 = (3300,9000-6720);
p54 = (3510,9000-7230);
p55 = (4185,9000-5490);
p56 = (3855,9000-6360);
p57 = (3765,9000-7320);
p58 = (3825,9000-7620);
p59 = (4200,9000-7670);
p60 = (4455,9000-7670);
p61 = (4770,9000-7750);
p62 = (5040,9000-7890);
p63 = (5040,9000-7605);
p64 = (4080,9000-7350);
p65 = (4170,9000-6705);
p66 = (4350,9000-6120);
p67 = (4665,9000-5505);
p68 = (5130,9000-4725);
p69 = (5625,9000-3660);
p70 = (4440,9000-7320);
p71 = (4515,9000-6825);
p72 = (4875,9000-6060);
p73 = (5430,9000-5220);
p74 = (6120,9000-4320);
p75 = (4740,9000-7605);
p76 = (4845,9000-7005);
p77 = (5205,9000-6240);
p78 = (5850,9000-5460);
p79 = (6405,9000-5040);
p80 = (6945,9000-7935);
p81 = (7215,9000-8100);
p82 = (7440,9000-8340);
p83 = (7065,9000-8595);
p84 = (6705,9000-8650);
p85 = (7890,9000-8085);
p86 = (8355,9000-7905);
p87 = (7800,9000-8445);
p88 = (8235,9000-8430);
p89 = (7575,9000-8835);
p90 = (8055,9000-8880);
p91 = (3210,9000-7680);
p92 = (3285,9000-7650);
p93 = (3375,9000-7635);
p94 = (3540,9000-7710);
p95 = (3825,9000-7995);
p96 = (3990,9000-8370);
p97 = (3990,9000-8790);
p98 = (3885,9000-9150);
p99 = (3765,9000-9345);
p100 = (2775,9000-8325);
line11 = (p17..p18..p19..p20..p14) shifted -p1;
line12 = (p19..p22..p23) shifted -p1;
line13 = (p17..p24..p25..p26..p27..p28..p29..p30) shifted -p1;
line14 = (p30..p31..p32..p33..p34..p17) shifted -p1;
line15 = (p14..p35..p36..p37..p38--
p38..p25..p24..p17--
p17..p18..p19..p20..p14--
cycle) shifted -p1;
line16 = (p43..p44..p45) shifted -p1;
line17 = (p46..p47..p48..p49) shifted -p1;
line18 = (p50..p51..p52..p53..p54) shifted -p1;
line19 = (p1..p4..p5..p55..p45..p56..p49..p57..p58) shifted -p1;
line20 = (p12..(p54-(0,110))..p57) shifted -p1;
line21 = (p58..p59..p60..p61..p62) shifted - p1;
line22 = (p62..p63..p14+p1 - p2) shifted -p1;
line23 = (p59..p64..p65..p66..p67..p68..p69) shifted -p1;
line24 = (p60..p70..p71..p72..p73..p74) shifted -p1;
line25 = (p61..p75..p76..p77..p78..p79) shifted -p1;
line26 = (p80..p81..p82) shifted -p1;
line27 = (p82..p83..p84) shifted -p1;
line28 = (p81..p85..p86) shifted -p1;
line29 = (p82..p87..p88) shifted -p1;
line30 = (p83..p89..p90) shifted -p1;
line31 = (p91..p92..p93..p94..p95..p96..p97..p98..p99) shifted -p1;
line32 = (p100+(300,0)..
p100+(0,-300)..
p100-(300,0)..
p100+(300,0)--
cycle) shifted -p1;
line33 = (p100+200*(0.5,0.87)--
p100--
p100+(200,0)..
p100+(0,-200)..
p100-(200,0)..
p100+200*(0.5,0.87)--
cycle) shifted -p1;
origin = (10cm,10cm);
xshift = (p1 + p3 - 2p2) scaled s;
yshift = (p1 - p2) scaled s;
C[1] = WHITE;
C[2] = GREY;
c := 1;
xmin = -2;
xmax = 2;
ymin = -2;
ymax = 5;
for y=ymin upto ymax:
for x=xmin upto xmax:
offset := origin + x*xshift + y*yshift;
fill fish scaled s shifted offset withcolor C[c];
fill line15 scaled s shifted offset withcolor C[3-c];
fill line33 scaled s shifted offset withcolor C[3-c];
endfor;
c := 3 - c;
endfor;
c := 1;
pickup pencircle scaled 2pt;
for y=ymin upto ymax:
for x=xmin upto xmax:
offset := origin + x*xshift + y*yshift;
draw line11 scaled s shifted offset withcolor C[c];
draw line12 scaled s shifted offset withcolor C[c];
for i=13 upto 14:
draw line[i] scaled s shifted offset withcolor C[3-c];
endfor;
for i=16 upto 32:
draw line[i] scaled s shifted offset withcolor C[3-c];
endfor;
endfor;
c := 3 - c;
endfor;
%
pickup pencircle scaled 1;
draw(0,0)--(width,0)--(width,height)--(0,height)--cycle withcolor (0,0,0);
drawing = unitsquare xscaled width yscaled height;
clip currentpicture to drawing;
draw drawing;
endfig;
end
|