Retour

Source : hilbert03.mp

hilbert03.mp
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; 
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; 
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; 
 
hilbert03.mp (figure 6)
beginfig(6); 
iter := 6; 
d := .25cm; 
tortue(1,0,0,90,1); 
L(1,iter);
endfig;
 
end