suivant: Le pantalon
monter: Quelques exemples de géométrie
précédent: Morphing
Table des matières
Index
Commençons par un exemple :
On cherche l'enveloppe des droites définies par
y - 2tx - t2 lorsque t varie.
On va tracer le lieu des points d'intersection M des droites
ed d'équation
y - 2tx - t2 = 0 et des droites
ed1 d'équation -2x - 2t = 0 obtenue en dérivant
y - 2tx - t2 = 0 par
rapport à t.
Les instructions suivantes tracent les droites ed et ed1 de
paramètre t et le lieu de M.
Ces instructions se trouvent dans le fichier envelopp.
ed:=y-2*t*x-t^2;
ed1:=derive(ed,t);
M:=solve([ed,ed1],[x,y])[0];
plotparam(M[0]+i*M[1],t);
t:=element(-3..3);
d:=plotfunc(2*t*x-t^2,x);
On peut aussi définir la droite d'équation ay + bx + c = 0 par la liste [a, b, c].
On traite alors l'exemple avec les instructions ci-dessous (elles se trouvent
dans le fichier envelopl).
//ld=[a,b,c] si ay+bx+c=0
xyztrange(-6,6,-7,4,-10,10,-3,3,-6,6,-5,1,1);
purge(t);
ld:=[1,-2*t,-t^2];
a:=ld[0]:
b:=ld[1];
c:=ld[2];
ld1:=derive(ld,t);
dpd1:=a*ld1[1]-b*ld1[0];
//dpd1=-2 <>0 donc ici ld et ld1 ne sont pas paralleles
M:=(i*(-c*ld1[1]+b*ld1[2])+(c*ld1[0]-a*ld1[2]))/dpd1;
plotparam(M,t);
t:=element(-3..3);
d:=plotfunc(2*t*x+t^2,x);
On écrit maintenant deux fonctions (enveloppe3 et enveloppe) qui tracent l'enveloppe d'une famille de droites.
La fonction enveloppe3 a trois paramètres a,b,c qui sont des fonctions de la variable t et qui représente les droites d'équation ay+bx+c=0.
//enveloppe d'une droite def par a(t),b(t),c(t) (ay+bx+c=0)
enveloppe3(a,b,c):={
local ld,ld1,dd1,M;
ld:=[a,b,c];
ld1:=derive(ld,t);
dd1:=ld[0]*ld1[1]-ld[1]*ld1[0];
if (dd1!=0) {
M:=(i*(-ld[2]*ld1[1]+ld[1]*ld1[2])+
(ld[2]*ld1[0]-ld[0]*ld1[2]))/dd1;
return(plotparam(M,t));
} else {
return("droites paralleles");
}
}
La fonction enveloppe a un paramètre d qui est :
d est l'expression a(t)y+b(t)x+c(t) (on sous-endend = 0 et les
variables doivent être x,y,t).
enveloppe(d):={
local zM,a,b,c,a1,b1,c1,dpd1;
a:=derive(d,y);
b:=derive(d,x);
c:=subst(subst(d,x=0),y=0);
a1:=derive(a,t);b1:=derive(b,t);c1:=derive(c,t);
dpd1:=a*b1-b*a1;
if (dpd1!=0) {
zM:=(i*(-c*b1+b*c1)+(c*a1-a*c1))/dpd1;
return(plotparam(zM,t));
}
else
return("Droites paralleles");
};
On peut alors écrire les fichiers envelopt et envelop3t
pour avoir une figure animée : l'enveloppe E et les différentes
droites qui bougent selon les valeurs de t en restant tangentes à
E.
Voici le fichier envelop3t qui trace l'enveloppe des droites :
cos(t)*(1 - cos(2t))y + sin(t)*cos(2t)x = sin(t)cos(t) :
purge(t);
purge(tt);
purge(x);
purge(y);
xyztrange(-6,6,-7,4,-10,10,-3,3,-6,6,-2,4,1);
a:=cos(t)*(1-cos(2*t));
b:=sin(t)*cos(2*t);
c:=-sin(t)*cos(t);
enveloppe3(a,b,c);
tt:=element(-3..4);
aa:=subst(a,t,tt);
bb:=subst(b,t,tt);
cc:=subst(c,t,tt);
plotfunc((-bb*x-cc)/aa,x);
Voici le fichier envelopt qui trace l'enveloppe des droites
x*(cos(2*t) - cos(t)) + y*(sin(2*t) - sin(t)) - sin(2*t) = 0 :
xyztrange(-6,6,-7,4,-10,10,-3,3,-6,6,-2,4,1);
purge(x);
purge(y);
purge(t);
purge(tt);
d:=x*(cos(2*t)-cos(t))+y*(sin(2*t)-sin(t))-sin(2*t);
enveloppe(d);
tt:=element(-3..4);
dd:=subst(d,t,tt);
aa:=derive(dd,y);
bb:=derive(dd,x);
cc:=subst(subst(dd,x=0),y=0);
plotfunc((-bb*x-cc)/aa,x);
suivant: Le pantalon
monter: Quelques exemples de géométrie
précédent: Morphing
Table des matières
Index
Documentation de giac écrite par Renée De Graeve