MetaPost / Le cercle de Monge

La courbe orthoptique — lieu des points à partir desquels une courbe est vue sous un angle droit — de l'ellipse est un cercle, le cercle de Monge; il a pour diamètre la diagonale du rectangle qui contient l'ellipse.

Animation flash


ellpar.mp [ source brut ]

 %@Auteur: Maxime Chupin
 
 verbatimtex 
 %&latex 
 \documentclass{article} 
 \usepackage[latin1]{inputenc}
 \usepackage{amsmath}
 \usepackage{fourier}
 \begin{document} 
 etex 
 
 input geometrie2d;
 u=3cm;
 v=3;
 
 path r;
 path carre;
 carre = (0,0)--(1,0)--(1,1)--(0,1)--cycle;
 
 for i=0 upto 72:
     beginfig(i+1);
 	
     % excentricité : 0.65
 	
     numeric a,b,c,e,ya,xa,yb,xb,w,m,xm,ym;
     e := 0.65;
     a := 1.3u;
     b := a*sqrt(1-e**2);
     c := a*e;
     pair M,T,F,H,A,B,M';
     path ellipse,tangente,monge,tang,arc,vraitang;
     ellipse = fullcircle xscaled 2a yscaled 2b;
 	
     % axes
     pickup pencircle scaled 0.6pt;
     draw(-5u,0)--(5u,0);
     draw(0,-5u)--(0,5u);
     pickup pencircle scaled 1pt;
     draw ellipse withcolor green;
     drawarrow (0,0)--(0.6u,0);
     drawarrow (0,0)--(0,0.6u);
     pickup pencircle scaled 0.5pt;
 
     % directrice
     z3=(a/e,0);
     z4=(a/e,2u);
     draw 5[z3,z4]--5[z4,z3];
     z6=(-a/e,0);
     z7=(-a/e,2u);
     draw 5[z6,z7]--5[z7,z6];
 	
     % M
     xm:=a*cosd(30+5*i);
     ym:=b*sind(30+5*i);
     M = (xm,ym);
 	
     %tangente en M
 	path tangente;
  
 
     if (xm<>0) and (ym<>0):
 	  ya=0;
 	  xa=a*a/xm;
 
 	  yb=b*b/ym;
 	  xb=0;
     fi;
     
     if (ym=0) and (xm<>0):
 	  ya=0;
 	  xa=(a*a)/xm;
 
 	  yb=2u;
 	  xb=(a*a)/xm;
     fi;
 
     if (xm=0) and (ym<>0):
 	  xa=0;
 	  ya=(b*b)/ym;
 
 	  xb=2u;
 	  yb=(b*b)/ym;
     fi;
 
     %définition de daux points de coordonnés xa,ya et xb,yb
     A = (xa,ya);
     B = (xb,yb);
 
     % cercle de monge
     monge := fullcircle scaled 2sqrt(a*a+b*b);
 
 
 
     pickup pencircle scaled 0.8pt;
     % tracé de la droite
     draw 10[A,B]--10[B,A] withcolor blue;
     tangente := 10[A,B]--10[B,A];
 	
 
     % point d'intersection
     arc := halfcircle scaled 2sqrt(a*a+b*b) rotated (15+5*i) ;
     T = arc intersectionpoint tangente;
 	
     % tracé du cercle
 
     if i=0:
 	r := T;
     else:
 	r := r--T;
 	draw r withcolor red;
     fi;
 
 
     % tangente en M'
     F=(0,0);
     if (xm<>0) and (ym<>0):	
 	w=1*u;
 	m=(a*a)/(b*b)*ym/xm*u;
     fi;
     
     if (xm=0) and (ym<>0):
 	w=0;
 	m=2u;
     fi;
 
     if (ym=0) and (xm<>0):
 	w=2u;
 	m=0;
     fi;
     
     z2=(w,m);
     H=z2;
     tang = 5[F,H]--5[H,F];
     vraitang := tang shifted T;
     draw tang shifted T withcolor blue;
     % z5= vraitang intersectionpoint ellipse;
 	
 
     %carré
     pickup pencircle scaled 0.7pt;
     draw carre scaled 10 rotated (angle(T-M)+90) shifted T
 	dashed evenly withcolor 0.2white;
  
 
     % labels
 
     % i,j
     label.bot(btex $\vec \imath$ etex, (0.3u,0));
     label.lft(btex $\vec \jmath$ etex, (-0.01u,0.3u));
   
     % points
     % label.lft(btex $M'$ etex, z5);
     dotlabel.urt(btex $T$ etex, T);
     dotlabel.urt(btex $M$ etex, M);
     dotlabel.urt(btex $O$ etex, (0,0));
     % droites
     label.lft(btex $\delta$ etex,(0,-1.8u));
     label.lft(btex $\cal D$ etex,(-2u,-1.8u));
     label.rt(btex ${\cal D}'$ etex,(2u,-1.8u));
 
     % titre
     label.urt(btex \begin{LARGE}\textit{Le cercle de Monge}\end{LARGE} etex, (-1.5*a,1.3*a)); 
     label.urt(btex \begin{LARGE}$x^2+y^2=a^2+b^2$\end{LARGE} etex, (0.3*a,1.3*a)); 
 
     clip currentpicture to 
 	(-2.5u,-2u)--(-2.5u,2u)--(2.5u,2u)--(2.5u,-2u)--cycle;
     endfig;
 endfor;
 
 end
 

 

Validation CSS Validation XHTMLJean-Michel Sarlat — Dernière modification : 17 janvier 2007 (0.07s - 3773481 - mercredi 19 novembre 2008) vers le haut