prologues := 3;
outputtemplate := "%j/%j-%c.svg";
outputformat := "svg";
verbatimtex
%&latex
\documentclass{article}
\usepackage{amsmath}
\usepackage[charter]{mathdesign}
\begin{document}
etex
u:=3cm;
path cercle, piri, hori, verti, horip, vertip, vertib, rayon;
cercle := fullcircle scaled 2u;
hori := 12[(-u,0),(u,0)]--12[(u,0),(-u,0)];
verti := 12[(0,-u),(0,u)]--12[(0,u),(0,-u)];
for i:=0 upto 360:
beginfig(i);
pair P,M,Q,O;
numeric b;
b:= 1/3*u;
O:=(-u,0);
pickup pencircle scaled 0.8pt;
drawarrow (-1.3u,0)--(2u,0);
drawarrow (-u,-1.5u)--(-u,1.5u);
pickup pencircle scaled 0.6pt;
draw cercle dashed evenly withcolor blue;
P:=u*(cosd(i),sind(i));
horip:= hori shifted P;
vertip:= verti shifted P;
vertib:= verti shifted (b,0);
M = vertib intersectionpoint horip;
rayon := 5[O,M]--5[M,O];
Q = rayon intersectionpoint vertip;
if i=0:
piri:=Q;
else:
piri:=piri--Q;
fi;
if (xpart Q)>(xpart M):
draw O--Q dashed evenly;
else:
draw O--M dashed evenly;
fi;
draw M--P dashed evenly;
draw P--Q dashed evenly;
draw (xpart M,-1.5u)--(xpart M,1.5u) dashed evenly;
pickup pencircle scaled 1pt;
draw piri withcolor red;
dotlabel.lrt(btex $B(b,0)$ etex,(b,0));
dotlabel.ulft(btex $O$ etex, O);
dotlabel.urt(btex $Q$ etex,Q);
dotlabel.ulft(btex $P$ etex,P);
dotlabel.ulft(btex $M$ etex,M);
dotlabel.lrt(btex $A(a,0)$ etex, (u,0));
label.urt(btex $\mathcal{C}$ etex, (-u/2,0.95u));
label.top(btex $x$ etex, (1.8u,0));
label.lft(btex $y$ etex, (-u,1.3u));
label(btex \itshape{Quartique piriforme} etex,(1.3u, 1.2u));
label(btex $x^4-ax^3+b^2y^2=0$ etex, (1.3u,-1.2u));
endfig;
endfor;
end