On considère un cercle de rayon \(a\) de centre \(O\) et \(A\) le point de coordonnée \((a,0)\). On prend un point courant \(P\) et un point \(N\) sur le cercle tel que l'arc \(AN\) soit \(2\) fois plus grand que l'arc \(AP\). Ensuite on définit le point \(M\) comme le symétrique de \(P\) par rapport à \(N\). Quand le point \(P\) décrit le cercle, le point \(M\) décrit le trifolium régulier.
prologues := 3;
outputtemplate := "%j/%j-%c.svg";
outputformat := "svg";
verbatimtex
%&latex
\documentclass{article}
\usepackage[charter]{mathdesign}
\begin{document}
etex
u:=1.5cm;
path trif;
for i:=0 upto 200:
beginfig(i);
pickup pencircle scaled 0.6pt;
drawarrow (-3.5u,0)--(3.5u,0);
drawarrow (0,-3.5u)--(0,3.5u);
pair A,P,N,M;
path cercle;
A:=(u,0);
cercle:=fullcircle scaled 2u;
P:=point (i*0.04) of cercle;
N:=point -2(i*0.04) of cercle;
M:=2[P,N];
draw P--M withcolor green;
draw cercle dashed evenly withcolor blue;
if i=0:
trif:=M;
else:
trif:=trif..M;
fi;
pickup pencircle scaled 1pt;
draw trif withcolor red;
dotlabel.urt(btex $P$ etex,P);
dotlabel.llft(btex $N$ etex,N);
dotlabel.ulft(btex $M$ etex,M);
dotlabel.ulft(btex $O$ etex,(0,0));
dotlabel.lrt(btex $A$ etex,A);
label.top(btex $x$ etex,(3.3u,0));
label.lft(btex $y$ etex,(0,3.3u));
label.top(btex $a$ etex,(0.5u,0));
label(btex \itshape Trifolium r\'egulier etex,(2u,-2.5u));
endfig;
endfor;
end.