input geometriesyr16; u:=0.75cm; vardef roulades(expr n, t)= save $; pair A[],I[],O,centre[],J[]; path cc[],poly; picture $; $=image( O=u*(3,3); A1=u*(1,1); for j=2 upto n: A[j]=rotation(A[j-1],O,-360/n); endfor; trace A1 for k=2 upto n: --A[k] endfor --cycle withpen pencircle scaled 1.25bp withcolor gris; trace droite(A1,A[n]); for k=0 upto n-2: centre[k]=A[n] shifted(k*(A[n]-A[1])); endfor; I0=A1; for k=0 upto (n-2): for j=1 upto (360/n): I[k*(360/n)+j]=rotation(I[k*(360/n)],centre[k],-j); endfor; endfor; J0=O; for k=0 upto (n-2): for j=1 upto (360/n): J[k*(360/n)+j]=rotation(J[k*(360/n)],centre[k],-j); endfor; endfor; cc1=I[0] for j=1 upto (360-360/n): ..I[j] endfor ; trace cc1 withcolor orange; if t=1: marque_p:="plein"; for k=0 upto n-2: for j=10 step 30 until (360/n): pointe(I[k*(360/n)+j]); trace centre[k]-- for p=1 upto n-1: rotation(centre[k],J[k*(360/n)+j],-p*(360/n))-- endfor cycle dashed evenly withcolor 0.4[blanc,bleu]; endfor; endfor; fi; ); $:=rotation($,A1,-angle(A[n]-A[1])); $ enddef; figure(-.5u,0,18u,6.5u); %trace feuillet; trace roulades(3,1); fin; figure(-.5u,0,18u,7.5u); %trace feuillet; trace roulades(4,1); fin; figure(-1.5u,0,19u,7.5u); %trace feuillet; trace roulades(5,1); fin; figure(-1.5u,0,20u,7.5u); %trace feuillet; trace roulades(8,1); fin; figure(-1.5u,0,21u,7.5u); %trace feuillet; trace roulades(20,1); fin; figure(-1.5u,0,21u,7.5u); %trace feuillet; trace roulades(36,2); fin; figure(-1.5u,0,20u,7.5u); trace roulades(9,2); currentpicture:=nullpicture; nomme.bot(A1); nomme.llft(A2); nomme.llft(A3); nomme.lft(A4); nomme.rt(A7); nomme.lrt(A8); nomme.lrt(A9); currentpicture:=rotation(currentpicture,A1,-angle(A[9]-A[1])); trace roulades(9,2); fin; figure(-2.5u,0,20u,7.5u); trace roulades(180,2); fin; figure(-.5u,0,18u,6.5u); %trace feuillet; trace roulades(3,2); fin; figure(-2.5u,0,19u,7.5u); trace roulades(10,2); trace hachurage(rotation(cc1--cycle,A1,-angle(A[10]-A[1])),60,0.4,2) withcolor gris; dotlabel.bot(btex $A_1$ etex,A1); dotlabel.bot(btex $A_{10}$ etex,rotation(A10,A1,-angle(A[10]-A[1]))); dotlabel.bot(btex $A'_{9}$ etex,rotation(centre1,A1,-angle(A[10]-A[1]))); dotlabel.ulft(btex $A'_1$ etex,rotation(I[36],A1,-angle(A[10]-A[1]))); fin; end