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