next up previous contents index
suivant: Calcul numérique monter: Faire une animation en précédent: Animation d'un graphe 3D :animate3d   Table des matières   Index


Animation d'une séquence d'objets graphiques :animation

animation permet de dessiner chaque objet d'une suite d'objets graphiques avec un temps d'affichage donné. En général les objets de la suite dépendent d'un paramètre, animation fait varier ce paramètre.
animation a comme paramètre une séquence d'objets graphiques. Attention
Pour définir la séquence d'objets graphiques avec seq il faut quoter la commande dessinant l'objet graphique car cette commande dépend d'un paramètre qui est defini par les autres arguments de seq. On tape :
animation(seq('plotfunc(cos(a*x),x)',a,0,10))
On obtient :
La suite des différentes représentations de la courbe définies par y = cos(ax), pour a = 0..10
On tape :
animation(seq('plotfunc([cos(a*x),sin(a*x)],x=0..2*pi/a)',a,1,10))
On obtient :
La suite des différentes représentations des 2 courbes définies par y = cos(ax) et y = sin(ax), pour a = 1..10 et pour x = 0..2$ \pi$/a
On tape :
animation(seq('plotparam([cos(a*t),sin(a*t)],t=0..2*pi)',a,1,10))
On obtient :
La suite des différentes représentations des courbes définies paramétriquement par x = cos(at) et y = sin(at), pour a = 1..10 et pour t = 0..2$ \pi$
On tape :
animation(seq('plotparam([sin(t),sin(a*t)],t,0,2*pi,tstep=0.01)',a,1,10))
On obtient :
La suite des différentes représentations des courbes paramétrées définies par x = sin(t), y = sin(at), pour a = 0..10 et t = 0..2$ \pi$
On tape :
animation(seq('plotpolar(1-a*0.01*t^2,t,0,5*pi,tstep=0.01)',a,1,10))
On obtient :
La suite des différentes représentations des courbes polaires définies par $ \rho$ = 1 - a*0.01*t2, pour a = 0..10 et t = 0..5$ \pi$
On tape :
plotfield(sin(x*y),[x,y]);animation(seq('plotode(sin(x*y),[x,y],[0,a])',a,-4,4,0.5))
On obtient :
Le champ des tangentes de y'=sin(xy) et la suite des différentes courbes intégrales passant par le point (0;a) pour a=-4,-3.5...3.5,4
On tape :
animation(seq(affichage('carre(0,1+i*a)',rempli),a,-5,5))
On obtient :
La suite des différents carrés définis par les points 0 et 1+i*a pour a = - 5..5
On tape :
animation(seq('droite([0,0,0],[1,1,a])',a,-5,5))
On obtient :
La suite des différentes droites définies par les points [0,0,0] et [1,1,a] pour a = - 5..5
On tape :
animation(seq('plotfunc(x^2-y^a,[x,y])',a=1..3))
On obtient :
La suite des différentes représentations 3D des surfaces définies par x2 - ya, pour a = 1..3 avec les couleurs de l'arc en ciel
On tape :
animation(seq(plotfunc((x+i*y)^a,[x,y],affichage=rempli),a=1..10)
On obtient :
La suite des différentes représentations "4D" des surfaces définies par (x + i*y)a, pour a = 0..10 avec les couleurs de l'arc en ciel

Remarque 0n peut construire la séquence avec un programme, par exemple on veut dessiner les segments de longueur 1,$ \sqrt{2}$...$ \sqrt{2}$ 0 construit avec un triangle rectangle de côtés 1 et le segment précédent.
Le programme (bien mettre c:=evalf(..) pour que les calculs soient approchés sinon le temps de calcul est trop long) :

essai(n):={
local a,b,c,j,aa,bb,L;
a:=1;
b:=1;
L:=[point(1)];
for(j:=1;j<=n;j++){
L:=append(L,point(a+i*b));
c:=evalf(sqrt(a^2+b^2));
aa:=a;
bb:=b;
a:=aa-bb/c;
b:=bb+aa/c;
}
L;
}
Puis on tape
animation(essai(20))
On voit, en boucle, chaque point, l'un après l'autre, avec un temps d'affichage plus ou moins grand selon la valeur de animate de cfg.
Ou on tape
L:=essai(20); s:=segment(0,L[k])$(k=0..20)
On voit les 21 segments.
Puis on tape :
animation(s)
On voit, en boucle, chaque segment, l'un apres l'autre avec un temps d'affichage plus ou moins grand selon la valeur de animate de cfg.
next up previous contents index
suivant: Calcul numérique monter: Faire une animation en précédent: Animation d'un graphe 3D :animate3d   Table des matières   Index
Documentation de giac écrite par Renée De Graeve