input tortue.mp;
numeric d,iter,epaisseur;
color couleur;
vardef trace(expr a,b) =
draw a--b withpen pencircle scaled epaisseur withcolor couleur;
enddef;
vardef L(expr n,m) =
save couleur,epaisseur;
color couleur;
epaisseur := (m+1)*mm;
couleur := (m/10,0,1-(m/10));
if m>0:
tourne(n,90);
R(n,m-1);
avance(n,d,trace);
tourne(n,-90);
L(n,m-1);
avance(n,d,trace);
L(n,m-1);
tourne(n,-90);
avance(n,d,trace);
R(n,m-1);
tourne(n,90);
fi
enddef;
vardef R(expr n,m) =
save couleur,epaisseur;
color couleur;
epaisseur := (m+1)*mm;
couleur := (m/10,0,1-m/10);
if m>0:
tourne(n,-90);
L(n,m-1);
avance(n,d,trace);
tourne(n,90);
R(n,m-1);
avance(n,d,trace);
R(n,m-1);
tourne(n,90);
avance(n,d,trace);
L(n,m-1);
tourne(n,-90);
fi
enddef;
beginfig(6);
iter := 6;
d := .25cm;
tortue(1,0,0,90,1);
L(1,iter);
endfig;
end
|