CONIQUES (11)
Liste des figures
Figure fig_ca01_010408_conique_foyer_directrice
figure 0001
Figure fig_ca02_220309_conique_foyer_directrice
figure 0002
Figure fig_ce01_250309_conique_equation
figure 0003
Figure fig_ce02_250309_conique_equation
figure 0004
Figure fig_ce03_250309_conique_equation
figure 0005
Figure fig_ce04_250309_conique_equation
figure 0006
Figure fig_ce05_250309_conique_equation
figure 0007
Figure fig_cp01_250309_conique_5points
figure 0008
Figure fig_ea01_020408_ellipses
figure 0009
Figure fig_ee01_020408_ellipses
figure 0010
Figure fig_pa01_160110_paraboles_intersection
figure 0011
Asymptote - Figure 0001: fig_ca01_010408_conique_foyer_directrice.asy
(Code compilé avec Asymptote version 2.14svn)
largeur320 Figure fig_ca01_010408_conique_foyer_directrice
/* L'extension geometry de Philippe Ivaldi
   introduit une nouvelle structure pour les coniques :
   struct conic { real e, p, h; point F; line D; }
   - e est l'excentricité ;
   - F est un foyer et D la directrice associée ;
   - h est la distance de F à D
   - p est le paramètre, il vérifie l'égalité p=he.
   
   Une des deux principales routines 
   pour définir une conique quelconque est :
       conic conic(point F, line l, real e)
*/
// import geometry_dev; // extension devenue l'extension geometry officielle
import geometry;        // le 12/05/09, dans la version 1.71 d'asymptote. :-))

size(7.5cm,0);
point foyer=(0,0); dot("F", foyer, W);

line directrice=line((1,-1),(1,1)); 
draw(directrice,dashed+.7bp+green);

// Une ellipse lorsque 0 < e < 1
conic ell=conic(foyer,directrice,.8); 
draw(ell,.8bp+blue);

// Une parabole lorsque e = 1
conic par=conic(foyer,directrice,1); 
draw(par,.8bp+red);

draw(box((-2,-3), (2,3)), invisible);
Asymptote - Figure 0002: fig_ca02_220309_conique_foyer_directrice.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_ca02_220309_conique_foyer_directrice
/* L'extension geometry de Philippe Ivaldi
   introduit une nouvelle structure pour les coniques :
   struct conic { real e, p, h; point F; line D; }
   - e est l'excentricité ;
   - F est un foyer et D la directrice associée ;
   - h est la distance de F à D
   - p est le paramètre, il vérifie l'égalité p=he.
   
   Une des deux principales routines 
   pour définir une conique quelconque est :
       conic conic(point F, line l, real e)
*/
// import geometry_dev; // extension devenue l'extension geometry officielle
import geometry;        // le 12/05/09, dans la version 1.71 d'asymptote. :-))

size(7.5cm,0);
point foyer=(0,0); dot("F", foyer, W);

line directrice=line((0,2),(2,0)); 
draw(directrice,dashed+.7bp+green);

// Un cercle lorsque e = 0
conic par=conic(foyer,directrice,0); 
draw(par,.8bp+black);

// Une ellipse lorsque 0 < e < 1
conic ell=conic(foyer,directrice,.8); 
draw(ell,.8bp+blue);

// Une parabole lorsque e = 1
conic par=conic(foyer,directrice,1); 
draw(par,.8bp+red);

// Une hyperbole lorsque e > 1
conic par=conic(foyer,directrice,1.5); 
draw(par,.8bp+green);


draw(box((-3,-3), (7,7)), invisible);
Asymptote - Figure 0003: fig_ce01_250309_conique_equation.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_ce01_250309_conique_equation
/* Une autre routine pour définir une conique est
        conic conic(bqe bqe) 
  qui retourne la conique dont une équation est représentée par bqe.
  bqe signifie 'bivariate quartic equation, c'est à la fois :
- un type dont la structure est : coordsys coordsys
                                  real[] a
  avec a tableau des 6 coefficients tels que : 
  a[0]x^2+a[1]xy+a[2]y^2+a[3]x+a[4]y+a[0]=0
- une fonction :
  bqe(coordsys R=currentcoordsys,real a,real b,real c,real d,real e,real f)
  retourne un objet de type bqe représentant l'équation 
  ax^2 + bxy + cy^2 + dx + ey + f = 0, relativement au repère R.
*/
// import geometry_dev; // extension devenue l'extension geometry officielle
import geometry;        // le 12/05/09, dans la version 1.71 d'asymptote. :-))

size(7.5cm,0);

show(currentcoordsys,dotpen=invisible);

// hyperbole d'équation x^2-xy-y^2+3y+3=0
conic c1=conic(bqe(1,-1,-1,0,3,3));
draw(c1,.8bp+blue);

// ellipse d'équation x^2+2y^2+2x-5=0
conic c2=conic(bqe(1,0,2,2,0,-5));
draw(c2,.8bp+red);

// cercle d'équation x^2+y^2-4x+2y-5=0
conic c2=conic(bqe(1,0,1,-4,2,-5));
draw(c2,.8bp+black);

draw(box((-2,-4), (5,5)), invisible);
Asymptote - Figure 0004: fig_ce02_250309_conique_equation.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_ce02_250309_conique_equation
/* bqe signifie 'bivariate quartic equation, c'est à la fois :
- un type dont la structure est : coordsys coordsys
                                  real[] a
  avec a tableau des 6 coefficients tels que : 
  a[0]x^2+a[1]xy+a[2]y^2+a[3]x+a[4]y+a[0]=0
- une fonction décrite dans l'exemple précédent.
*/
// import geometry_dev; // extension devenue l'extension geometry officielle
import geometry;        // le 12/05/09, dans la version 1.71 d'asymptote. :-))

size(7.5cm,0);

show(currentcoordsys,dotpen=invisible);

point pA=(4,0), pB=(0,2), pC=(-4,0), pD=(0,-2), pE=(3,1);
dot(pA^^pB^^pC^^pD^^pE);

conic c = conic(pA,pB,pC,pD,pE);
draw(c,.8bp+.8green);

// equation(explicit conic co)
// est une fonction qui retourne l'équation d'une conique.
// sous la forme d'un objet bqe (repère + tableau des coefficients)
bqe eq = equation(c);
string[] b={"$x^2+$","$xy+$","$y^2+$","$x+$","$y+$","=0"};
string equ="L'\'equation de la conique est :\par";
for(int k=0; k<6; ++k) equ += format("(%.3f)",eq.a[k])+b[k];
equ += "\par (coefficients \'eventuellement arrondis)";
label(minipage(equ,width=250),(0,4));

// string conictype(bqe bqe)
// est une fonction qui retourne le type d'une conique.

label("La conique est de type : "+conictype(eq),(.5,-1));
Asymptote - Figure 0005: fig_ce03_250309_conique_equation.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_ce03_250309_conique_equation
// un exemple analogue au précédent :  seul un point a changé !
// le script est le même à part les coordonnées du point pE.

// import geometry_dev; // extension devenue l'extension geometry officielle
import geometry;        // le 12/05/09, dans la version 1.71 d'asymptote. :-))

size(7.5cm,0);

show(currentcoordsys,dotpen=invisible);

point pA=(3,0), pB=(0,2), pC=(-4,0), pD=(0,-2), pE=(3,1);
dot(pA^^pB^^pC^^pD^^pE);

conic c = conic(pA,pB,pC,pD,pE);
draw(c,.8bp+.8green);

// equation(explicit conic co)
// est une fonction qui retourne l'équation d'une conique.
// sous la forme d'un objet bqe (repère + tableau des coefficients)
bqe eq = equation(c);
string[] b={"$x^2+$","$xy+$","$y^2+$","$x+$","$y+$","=0"};
string equ="L'\'equation de la conique est :\par";
for(int k=0; k<6; ++k) equ += format("(%.3f)",eq.a[k])+b[k];
equ += "\par (coefficients \'eventuellement arrondis)";
label(minipage(equ,width=250),(0,4));

// string conictype(bqe bqe)
// est une fonction qui retourne le type d'une conique.

label("La conique est de type : "+conictype(eq),(.5,-1));
Asymptote - Figure 0006: fig_ce04_250309_conique_equation.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_ce04_250309_conique_equation
// un exemple analogue au précédent :  seul un point a changé !
// le script est le même à part les coordonnées du point pE.

// import geometry_dev; // extension devenue l'extension geometry officielle
import geometry;        // le 12/05/09, dans la version 1.71 d'asymptote. :-))

size(7.5cm,0);

show(currentcoordsys,dotpen=invisible);

point pA=(3,0), pB=(0,2), pC=(-4,0), pD=(0,-2), pE=(1,1);
dot(pA^^pB^^pC^^pD^^pE);

conic c = conic(pA,pB,pC,pD,pE);
draw(c,.8bp+.8green);

// equation(explicit conic co)
// est une fonction qui retourne l'équation d'une conique.
// sous la forme d'un objet bqe (repère + tableau des coefficients)
bqe eq = equation(c);
string[] b={"$x^2+$","$xy+$","$y^2+$","$x+$","$y+$","=0"};
string equ="L'\'equation de la conique est :\par";
for(int k=0; k<6; ++k) equ += format("(%.3f)",eq.a[k])+b[k];
equ += "\par (coefficients \'eventuellement arrondis)";
label(minipage(equ,width=250),(0,4));

// string conictype(bqe bqe)
// est une fonction qui retourne le type d'une conique.

label("La conique est de type : "+conictype(eq),(.5,-1));
Asymptote - Figure 0007: fig_ce05_250309_conique_equation.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_ce05_250309_conique_equation
// un exemple analogue au précédent :  seul les points ont changé !
// le script est le même à part les coordonnées des 5 points.

// import geometry_dev; // extension devenue l'extension geometry officielle
import geometry;        // le 12/05/09, dans la version 1.71 d'asymptote. :-))

size(7.5cm,0);

show(currentcoordsys,dotpen=invisible);

transform t=shift((2,3))*rotate(135);
point pA=t*(-1,1), pB=t*(-.5,.25), pC=t*(0,0), pD=t*(1,1), pE=t*(2,4);
dot(pA^^pB^^pC^^pD^^pE);

conic c = conic(pA,pB,pC,pD,pE);
draw(c,.8bp+.8green);

// equation(explicit conic co)
// est une fonction qui retourne l'équation d'une conique.
// sous la forme d'un objet bqe (repère + tableau des coefficients)
bqe eq = equation(c);
string[] b={"$x^2+$","$xy+$","$y^2+$","$x+$","$y+$","=0"};
string equ="L'\'equation de la conique est :\par";
for(int k=0; k<6; ++k) equ += format("(%.3f)",eq.a[k])+b[k];
equ += "\par (coefficients \'eventuellement arrondis)";
label(minipage(equ,width=250),(0,4));

// string conictype(bqe bqe)
// est une fonction qui retourne le type d'une conique.

label("La conique est de type : "+conictype(eq),(.5,-1));
Asymptote - Figure 0008: fig_cp01_250309_conique_5points.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_cp01_250309_conique_5points
/* Une autre routine pour définir une conique est
       conic conic(point M1, point M2, point M3, point M4, point M5)
   qui retourne la conique non dégénérée passant par les 5 points.
*/
import geometry;
size(7.5cm,0);

show(currentcoordsys,dotpen=invisible);

point pA=(0,1), pB=(1,-2), pC=(2,-3), pD=(3,-2), pE=(4,1),
      pF=(1,-1.5), pG=(1,2);
dot(pA^^pB^^pC^^pD^^pE^^pF^^pG);

conic c1=conic(pA,pB,pC,pD,pE);
draw(c1,.8bp+blue);

conic c2=conic(pA,pB,pC,pD,pF);
draw(c2,.8bp+red);

conic c3=conic(pA,pB,pC,pD,pG);
draw(c3,.8bp+.8green);

draw(box((-2,-4), (5,5)), invisible);
Asymptote - Figure 0009: fig_ea01_020408_ellipses.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_ea01_020408_ellipses
/* Ellipses obtenues avec la fonction conic
   qui renvoie un objet de type **conic**
   Remarque importante :
   Mais à partir de ce type **conic** ont été définis des
   types spécifiques : **circle**, **ellipse**, **parabola**,
   **hyperbola**. Donc pour tracer des ellipses, on utilisera
   plutôt la fonction ellipse qui renvoie un objet de type 
   **ellipse**. Cf. exemples suivants.
*/
// import geometry_dev; // extension devenue l'extension geometry officielle
import geometry;        // le 12/05/09, dans la version 1.71 d'asymptote. :-))

size(7.5cm,0);
point foyer=(0,0); dot("F", foyer, E, fontsize(8)+gray);

line directrice=line(1,0,1); // 1x+0y+1=0 ssi x=-1
draw(directrice,dashed+.7bp+gray);

// Lorsque 0 < e < 1, on obtient des ellipses.

conic ell2=conic(foyer,directrice,.4); // bleue
draw(ell2,.8bp+blue);

conic ell3=conic(foyer,directrice,.6); // rouge
draw(ell3,.8bp+red);

conic ell4=conic(foyer,directrice,.8); // noir
draw(ell4,.8bp+black);

conic ell5=conic(foyer,directrice,.85); // jaune
draw(ell5,.8bp+.9yellow);

draw(box((-2,-3), (6,3)), invisible);
Asymptote - Figure 0010: fig_ee01_020408_ellipses.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_ee01_020408_ellipses
/* Ellipses obtenues avec la fonction ellipse
   qui renvoie un objet de type **ellipse**.
   Trois syntaxes possibles :
   - ellipse(point C, real a, real b, real angle=0)
     retourne l'ellipse de centre C dont le demi grand axe 
     a pour longueur a dans la direction donnée par dir(angle) 
     et dont le demi petit axe a pour longueur b.
   - ellipse(point F1, point F2, real a)
     retourne l'ellipse de foyers F1 et F2 dont le demi grand axe 
     a pour longueur a.
   - ellipse(point F1, point F2, point M)
     retourne l'ellipse de foyers F1 et F2 et passant par M.
*/
// import geometry_dev; // extension devenue l'extension geometry officielle
import geometry;        // le 12/05/09, dans la version 1.71 d'asymptote. :-))

size(7.5cm,0);
show(currentcoordsys);
// On définit...
point pA=(-2,0),
      pF1=(-2,3), pF2=(2,3),
          pF3=(-1,-2), pF4=(3,-2), pM=(2,-1);
ellipse ell1=ellipse(pA, 3, 2, 30); //Syntaxe 1
ellipse ell2=ellipse(pF1, pF2, 2.5); //Syntaxe 2
ellipse ell3=ellipse(pF3, pF4, pM); //Syntaxe 3
// ... puis on affiche :
dot("$A$",pA,S,blue);
dot("$F_1$",pF1,S,red); dot("$F_2$",pF2,S,red);
dot("$F_3$",pF3,SE,green); dot("$F_4$",pF4,SW,green); 
dot("$M$",pM,N,green);
draw(ell1,.8blue);
draw(ell2,.8red);
draw(ell3,.8green);
distance("$a=3$",ell1.C,point(ell1,0),0,fontsize(8pt));
distance("$b=2$",ell1.C,point(ell1,Relative(0.25)),0,fontsize(8pt));
distance("$a=2,5$",ell2.C,point(ell2,0),0,fontsize(8pt));

addMargins(.2cm,.2cm);
Asymptote - Figure 0011: fig_pa01_160110_paraboles_intersection.asy
(Code compilé avec Asymptote version 2.09svn)
largeur320 Figure fig_pa01_160110_paraboles_intersection
import geometry;
size(7.5cm,0);
show("",currentcoordsys);

real a=1.5,
     b=-2,
     c=-1, // coefficients de l'équation 1 : y=ax^2+bx+c
     d=1,
     e=-2.5,
     f=-1;   // coefficients de l'équation 2 : x=dy^2+ey+f

// Le type bqe, pour Bivariate Quadratic Equation, permet d'instancier un objet 
// représentant une équation de conique dans un repère donné.

// La fonction bqe(coordsys R=currentcoordsys,real a,real b,real c,real d,real e,real f)
// retourne un objet de type bqe représentant l'équation ax^2+bxy+cy^2+dx+ey+f=0 
// relativement au repère R.

bqe equation1=bqe(a,0,0,b,-1,c), // ax^2+bx-y+c=0
    equation2=bqe(0,0,d,-1,e,f); // dy^2-x+ey+f=0

conic parabole1=conic(equation1),
      parabole2=conic(equation2);
point[] ptsint=intersectionpoints(parabole1,parabole2);
circle  circ=circle(ptsint[0],ptsint[1],ptsint[2]);

draw(parabole1,red);
draw(parabole2,blue);
dot(ptsint,3bp+darkgreen);
draw(circ,1bp+orange);

draw(box((-3,-2.5),(4,4.5)),invisible);

Dernière modification le Fri Oct 28 12:58:36 CEST 2011 par G.Marris       Valide XHTML