Retour

Source : hilbert01.mp

hilbert01.mp
input tortue.mp; 
numeric d,iter; 
 
vardef trace(expr a,b) = draw a--b enddef; 
 
vardef L(expr n,m) = 
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) = 
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; 
 
hilbert01.mp (figure 1)
beginfig(1); 
iter := 1; 
d := 8cm; 
tortue(1,0,0,90,1); 
L(1,iter);
endfig;
 
hilbert01.mp (figure 2)
beginfig(2); 
iter := 2; 
d := 4cm; 
tortue(1,0,0,90,1); 
L(1,iter);
endfig;
 
hilbert01.mp (figure 3)
beginfig(3); 
iter := 3; 
d := 2cm; 
tortue(1,0,0,90,1); 
L(1,iter);
endfig;
 
hilbert01.mp (figure 4)
beginfig(4); 
iter := 4; 
d := 1cm; 
tortue(1,0,0,90,1); 
L(1,iter);
endfig;
 
hilbert01.mp (figure 5)
beginfig(5); 
iter := 5; 
d := .5cm; 
tortue(1,0,0,90,1); 
L(1,iter);
endfig;
 
hilbert01.mp (figure 6)
beginfig(6); 
iter := 6; 
d := .25cm; 
tortue(1,0,0,90,1); 
L(1,iter);
endfig;
 
end