prologues := 3;
outputtemplate := "besace/%j-%c.svg";
outputformat := "svg";
verbatimtex
%&latex
\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[charter]{mathdesign}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
etex
u:=1.5cm;
a:=3u;
b:=-2u;
path cercle,besacea, besaceb;
cercle := (0,0)..(a,0)..(a,b)..(0,b)..cycle ;
vardef proj(expr P,M,N) =
% On protège le symbole H si toutefois il est déjà utilisé et on
% déclare que c'est un point.
save H;
pair H;
% On indique que H est un barycentre de M et N, sans préciser
% exactement le coefficient...
H = whatever [M,N];
% On indique que le vecteur PH est égal à un certain nombre de fois
% le vecteur NM tourné de 90 degrés.
H - P = whatever * (M - N) rotated 90;
% Les équations ci-dessus étant suffisante pour définir H, on demande
% à la macro de le rendre.
H
enddef;
for i:=0 upto 180:
beginfig(i);
pair N,P,Q,O,I,J,M,M';
numeric p,j;
path droite;
O:=(0,0);
I:=(u,0);
J:=(0,u);
pickup pencircle scaled 0.9pt;
drawarrow (-6u,0)--(5u,0);
label.top(btex $x$ etex scaled 1.4,(4.8u,0));
drawarrow (0,2b)--(0,-b);
label.lft(btex $y$ etex scaled 1.4,(0,-0.9*b));
pickup pencircle scaled 0.5pt;
draw cercle dashed evenly withcolor green;
label.llft(btex $a$ etex scaled 1.4,(a/2,0));
label.lft(btex $b$ etex scaled 1.4,(0,b/2));
label.lft(btex $\gamma=\left\lbrace\begin{array}{l}x=a\cos t-b\sin t\\y=-\sin (t) x\\0