verbatimtex
%&latex
\documentclass{article}
\usepackage[frenchb]{babel}
\usepackage{lmodern}
\begin{document}
etex

input geometriesyr16;

vardef spidron(expr long,pas)=
  save $;
  picture $;
  pair M[];
  M1=u*(long,1);
  M2-M1=u*(-(long-1),0);
  for k=1 upto pas:
    if (k mod 2)=1:
      M[2+k]=demidroite(M[k],rotation(M[k+1],M[k],-30))%
      intersectionpoint demidroite(M[k+1],rotation(M[k],M[k+1],30));
    else:
      M[k+2]=rotation(M[k+1],M[k],60);
    fi;
  endfor;
  $=image(
    for k=1 upto pas:
      trace polygone(M[k],M[k+1],M[k+2]);
    endfor;
    );
  $
enddef;

figuremainlevee(-u,-15u,15u,15u);
trace spidron(12,10);
trace appelation(M2,M1,2mm,btex 12~cm etex);
trace Codeangle(M1,M2,M3,0,btex 30\degres etex);
trace Codeangle(M3,M1,M2,0,btex 30\degres etex);
trace Codelongueur(M2,M3,M3,M4,M4,M2,2);
trace Codeangle(M3,M4,M5,0,btex 30\degres etex);
trace Codeangle(M5,M3,M4,0,btex 30\degres etex);
trace Codelongueur(M4,M5,M5,M6,M6,M4,4);
trace Codeangle(M7,M5,M6,0,btex 30\degres etex);
trace Codeangle(M5,M6,M7,0,btex 30\degres etex);
trace Codelongueur(M7,M8,M8,M6,M6,M7,3);
finmainlevee;
end