input tortue.mp;
input TEX.mp;
numeric d,iter;
color couleur;
vardef trace(expr a,b) =
draw a--b
withpen pencircle scaled 2pt
withcolor couleur
enddef;
vardef D(expr n,m) =
save couleur;
color couleur;
couleur := blue;
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) =
save couleur;
color couleur;
couleur := red+green;
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 := 9;
d := .5cm;
tortue(1,0,0,0,1);
D(1,iter);
for i=1 upto (iter+1):
q := floor(2**i);
dotlabel.top(TEX("$" & decimal(q) & "$") scaled 2,point q of tortue_p[1]);
endfor
endfig;
end
|