input tortue.mp;
numeric d,iter;
vardef trace(expr a,b) = draw a--b enddef;
vardef D(expr n,m) =
if m>0:
tourne(n,-45);
D(n,m-1);
tourne(n,90);
E(n,m-1);
else:
tourne(n,-90);
avance(n,d,trace);
tourne(n,90);
avance(n,d,trace);
fi
enddef;
vardef E(expr n,m) =
if m>0:
D(n,m-1);
tourne(n,-90);
E(n,m-1);
tourne(n,45);
else:
avance(n,d,trace);
tourne(n,-90);
avance(n,d,trace);
tourne(n,90);
fi
enddef;
beginfig(1);
iter := 2;
d := 6cm;
tortue(1,0,0,0,1);
D(1,iter);
endfig;
beginfig(2);
iter := 4;
d := 3cm;
tortue(1,0,0,0,1);
D(1,iter);
endfig;
beginfig(3);
iter := 6;
d := 1.5cm;
tortue(1,0,0,0,1);
D(1,iter);
endfig;
beginfig(4);
iter := 8;
d := 0.75cm;
tortue(1,0,0,0,1);
D(1,iter);
endfig;
beginfig(5);
iter := 10;
d := 0.375cm;
tortue(1,0,0,0,1);
D(1,iter);
endfig;
end
|