Fichier rouladescr3.mp (figure 2) — Modifié le 21 Mars 2008 à 20 h 45

rouladescr3.mp (figure 2)
Source

input geometriesyr16;
u:=7.5mm;
figure(-10u,-10u,10u,10u);
path cc,cd;
pair O,T[],C[],M[];
numeric R,r;
R=4;
r=1;
O=(0,0);
C0=u*(R+r,0);
cc=cercles(O,R*u);
trace cc withcolor bleu;
for j=0 upto 360:
  T[j]=pointarc(cc,j);
  C[j]:=rotation(C0,O,j);
endfor;
marque_p:="plein";
for j=0 step (360/72) until 360:
  M[j]:=rotation(T[j],C[j],R*(angle(T[j]))/r);
  pointe(M[j]);
  drawoptions(dashed evenly);
  trace cercles(C[j],r*u);
  drawoptions();
endfor;
path epi;
epi=M[0]..
for j=(360/72) step (360/72) until 360:
  M[j]..
endfor
cycle;
trace epi withcolor orange;
fin;
figure(-10u,-10u,10u,10u);
path cc,cd;
pair O,T[],C[],M[];
numeric R,r;
R=6;
r=1;
O=(0,0);
C0=u*(R-r,0);
cc=cercles(O,R*u);
trace cc withcolor bleu;
for j=0 upto 360:
  T[j]=pointarc(cc,j);
  C[j]:=rotation(C0,O,j);
endfor;
marque_p:="plein";
for j=0 step (360/72) until 360:
  M[j]:=rotation(T[j],C[j],-R*(angle(T[j]))/r);
  pointe(M[j]);
  drawoptions(dashed evenly);
  trace cercles(C[j],r*u);
  drawoptions();
endfor;
path hypo;
hypo=M[0]..
for j=(360/72) step (360/72) until 360:
  M[j]..
endfor
cycle;
trace hypo withcolor orange;
fin;
end