Animations

Conchoïdes de Nicomède

On considère la verticale passant par le point A(a,0). Alors on construit le point P comme l'intersection de la verticale avec une droite issue de O(0,0) (rayon). On rapporte ensuite sur la droite (0P) la distance b dans les deux direction pour former les vecteur PM et PN. Lorsque le rayon parcours le demi plan des x>0 (P parcours la verticale), M et N forment des conchoïdes de Nicomède.

Animation flash


conch_nico.mp
%@AUTEUR: Maxime Chupin
%@DATE: 15 novembre 2009
verbatimtex
%&latex
\documentclass{minimal}
\usepackage[charter]{mathdesign}
\begin{document}
etex
% unitee
u:=1cm;
 
%% Macro JMS -----------------------------------------------------------------
picture UnBeauPoint;
UnBeauPoint := image(
    fill fullcircle scaled 3pt;
    fill fullcircle scaled 2pt withcolor white;
);
vardef pointe expr p = draw UnBeauPoint shifted p; enddef;
%%----------------------------------------------------------------------------
 
%parametre(s)
a:=3u;
b:=4u;
%les points fixes
pair A,B,O;
O:=(0,0);
A:=(a,0);
B:=(a+b,0);
%les points mobiles
pair C,P,D,M,N;
%le chemin du cadre de l'animation
pair cadre[];
cadre[0]:=(-4u,-8u);
cadre[1]:=(10u,-8u);
cadre[2]:=(10u,8u);
cadre[3]:=(-4u,8u);
%les chemins necessaires
path verticale, conchoideG, conchoideD,rayon;
verticale:=(a,2.8*ypart(cadre[1]))--(a,2.8*ypart(cadre[3]));
 
j:=0;
for i:=80  step (-0.5) until -80:
  beginfig(j);
  %les axes
    drawarrow (xpart(cadre[0]),0)--(xpart(cadre[1]),0);
    drawarrow (0,ypart(cadre[1]))--(0,ypart(cadre[3]));
    draw verticale dashed evenly;
  %le rayon
  % % un point du cercle unite
    C:=(cosd(i),sind(i))*u;
    D:=25[O,C]; %le point D assez loin :-)
  %on dessine le rayon
    rayon:=O--D;
    draw rayon dashed evenly;
  %on determine P
    P:=verticale intersectionpoint rayon;
  %les points de la courbe
  % % on recupere la longueur OP
    long:=arclength(O--P);
    show long;
    show b;
    show b/long;
    M:= (1-b/long)[O,P];
    N:= (1+b/long)[O,P];
  %les courbes
    if i=80:
      conchoideG:=M;
      conchoideD:=N;
    else:
      conchoideG:=conchoideG--M;
      conchoideD:=conchoideD--N;
    fi;
  %on dessine
    draw (P--M) withcolor blue withpen pencircle scaled 1pt ;
    draw (P--N) withcolor blue withpen pencircle scaled 1pt ;
    draw conchoideG withcolor red withpen pencircle scaled 1pt;
    draw conchoideD withcolor red withpen pencircle scaled 1pt;
  %on dessine les points fixes
    label.lrt(btex $A$ etex,A);
    label.lrt(btex $O$ etex,O);
    label.lrt(btex $B$ etex,B);
    pointe(B);
    pointe(A);
    pointe(O);
  %on dessine les points courant
    label.urt(btex $P$ etex, P);
    label.urt(btex $M$ etex, M);
    label.urt(btex $N$ etex, N);
    pointe(P);
    pointe(M);
    pointe(N);
  %titre legende
    label(btex $\rho=\frac{a}{\cos \theta}\pm b$ etex scaled 1.5, (8u,6u));
  %on clip
    clip currentpicture to cadre[0]--cadre[1]--cadre[2]--cadre[3]--cycle;
  endfig;
  j:=j+1;
endfor;
end.