La besace (étudiée par Cramer en 1750) :
On trace un cercle passant par l'origine 0 et coupant l'axe des
abscisses à une distance a de 0 et l'axe de ordonnées à une distance b.
On trace alors un rayon vecteur avec pour origine O tel qu'il coupe le
cercle en P. On projette ensuite P sur (Oy) puis on rapport la distance
OP sur (QP) : QM=QM'=OP. Si on fait varier le vecteur rayon OP le point M
décrit alors la besace.
%@AUTEUR: Maxime Chupin %@DATE: 20 mars 2007 verbatimtex %&latex \documentclass{article} \usepackage[latin1]{inputenc} \usepackage{amsmath} \usepackage{array} \begin{document} etex u:=2.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 37: beginfig(i+1); pair N,P,Q,O,I,J,M,M'; numeric p,j; path droite; j:=5*i; 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 $\boxed{\gamma=\left\lbrace\begin{array}{l}x=a\cos t-b\sin t\\ y=-\sin (t) x\\0<t<2\pi\\\end{array}\right.}$ etex scaled 1.6,(1.5a,-0.7*b)); pickup pencircle scaled 1pt; if i=0: besacea := (0,0); draw besacea withcolor red; besaceb := (0,0); draw besaceb withcolor red; elseif i=37: besacea:= besacea..(0,0); draw besacea withcolor red; besaceb:= besaceb..(0,0); draw besaceb withcolor red; else: pickup pencircle scaled 0.5pt; N:=(cosd(j-130)*u,sind(j-130)*u); droite := (0.1*cosd(j-130),0.1*sind(j-130))--4*N; P = droite intersectionpoint cercle; dotlabel.lft(btex $P$ etex scaled 1.4,P) ; draw O--P withcolor blue; Q := proj(P,O,J); dotlabel.ulft(btex $Q$ etex scaled 1.4,Q); draw 12[P,((xpart Q)-6u,ypart Q)]--12[((xpart Q)-6u,ypart Q),P] dashed evenly; p:=abs(O-P); M:=(p,ypart Q); M':=(-p,ypart Q); draw M--M' withcolor blue; draw O--M dashed evenly; draw O--M' dashed evenly; pickup pencircle scaled 1pt; besacea := besacea..M; draw besacea withcolor red; besaceb := besaceb..M'; draw besaceb withcolor red; dotlabel.lft(btex $M$ etex scaled 1.4,M); dotlabel.lft(btex $M'$ etex scaled 1.4,M'); label.lft(btex $p$ etex scaled 1.4, ((xpart P)/2,(ypart P)/2)); label.top(btex $p$ etex scaled 1.4, ((xpart Q +xpart M)/2,(ypart Q +ypart M)/2)); label.top(btex $p$ etex scaled 1.4, ((xpart Q +xpart M')/2,(ypart Q +ypart M')/2)); fi; dotlabel.llft(btex $O$ etex scaled 1.4,O); clip currentpicture to (-5u,-5u)--(5u,-5u)--(5u,5u)--(-5u,5u)--cycle; endfig; endfor; end