Une épicycloïde est une courbe plane transcendante, trajectoire d'un point fixé à un cercle qui roule sans glisser sur un autre cercle dit directeur, les disques ouverts ayant ces deux cercles pour frontière étant disjoints. Allez voir le site Mathcurve pour plus d'explication.
prologues := 3;
outputtemplate := "%j/%j-%c.svg";
outputformat := "svg";
verbatimtex
%&latex
\documentclass{article}
\usepackage{amsmath}
\begin{document}
etex
u:=1cm;
a:=3u;
m:=5;
q:=7/m;
pair O,O',M;
O:=(0,0);
path gcercle,pcercle,rayon,epi;
for i:=0 upto (m*180):
beginfig(i);
pickup pencircle scaled 0.8pt;
drawarrow (-1.2*a-(2*a/q),0)--(1.2*a+(2*a/q),0);
drawarrow (0,-1.2*a-(2*a/q))--(0,1.2*a+(2*a/q));
gcercle:=fullcircle scaled (2*a);
O':=((a+(a/q))*cosd(i*2),(a+(a/q))*sind(i*2));
pcercle := fullcircle scaled ((2*a)/q) shifted O';
rayon:= (0,0)--(12*u*cosd((q+1)*i*2),12*u*sind((q+1)*i*2));
rayon := rayon shifted O';
M := rayon intersectionpoint pcercle;
if i=0:
epi:=M;
else:
epi := epi--M;
fi;
pickup pencircle scaled 0.7pt;
draw gcercle dashed evenly withcolor blue;
draw pcercle dashed evenly withcolor green;
draw O'--M dashed evenly;
pickup pencircle scaled 1pt;
draw epi withcolor red;
label.top(btex $a$ etex , (a/2,0));
label.urt(btex $\frac{a}{q}$ etex, ((xpart O'+xpart M)/2,(ypart O'+ypart M)/2));
dotlabel.urt(btex $M$ etex, M);
dotlabel.urt(btex $O'$ etex, O');
dotlabel.urt(btex $O$ etex, O);
clip currentpicture to (-1.2*a-(2*a/q),-1.2*a-(2*a/q))--(1.2*a+(2*a/q),-1.2*a-(2*a/q))--(1.2*a+(2*a/q),1.2*a+(2*a/q))--(-1.2*a-(2*a/q),1.2*a+(2*a/q))--cycle;
endfig;
endfor;
end