### 2.17.3 Εφέ κίνησης μιας ακολουθίας γραφικών αντικειμένων : `animation`

`animation` δημιουργεί εφέ κίνησης σε μια ακολουθία γραφικών αντικειμένων με έναν ορισμένο χρόνο εμφάνισης στην οθόνη. Η ακολουθία των αντικειμένων εξαρτάται τις πιο πολλές φορές από μία παραμέτρου και ορίζεται χρησιμοποιώντας την εντολή `seq` αλλά δεν είναι υποχρεωτικό.
`animation` παίρνει σαν όρισμα την ακολουθία γραφικών αντικειμένων.
Για να ορίσουμε μια ακολουθία γραφικών αντικειμένων με `seq`, εισάγουμε τον ορισμό του γραφικού αντικειμένου (που εξαρτάται από την παράμετρο), το όνομα της παραμέτρου, την ελάχιστη τιμή της, την μέγιστη τιμή της και προαιρετικά μια τιμή βήματος.
Είσοδος :

`animation(seq(plotfunc(cos(a*x),x),a,0,10))`

Έξοδος :

`Η ακολουθία των καμπύλων που ορίζονται από την` `y=``cos``(ax)``,
για` `a=0,1,2,…,10`

Είσοδος:

`animation(seq(plotfunc(cos(a*x),x),a,0,10,0.5))`

ή

`animation(seq(plotfunc(cos(a*x),x),a=0..10,0.5))`

Έξοδος :

`Η ακολουθία των καμπύλων που ορίζονται από την` `y=``cos``(ax)``,
για` `a=0,0.5,1,1.5,…,10```

Είσοδος :

`animation(seq(plotfunc([cos(a*x),sin(a*x)],x=0..2*pi/a), a,1,10))`

Έξοδος :

`Η ακολουθία των δύο καμπύλων που ορίζονται από την` `y=``cos``(ax)``και την` `y=``sin``(ax)``, για` `a=1..10` `και για` `x=0..2π/a```

Είσοδος :

`animation(seq(plotparam([cos(a*t),sin(a*t)], t=0..2*pi),a,1,10))`

Έξοδος :

`Η ακολουθία των παραμετρικών καμπύλων που ορίζονται από την` `x=``cos``(at)``και την` `y=``sin``(at)``, για` `a=1..10` `και για` `t=0..2π```

Είσοδος :

`animation(seq(plotparam([sin(t),sin(a*t)], t,0,2*pi,tstep=0.01),a,1,10))`

Έξοδος :

`Η ακολουθία των παραμετρικών καμπύλων που ορίζονται από τις` `x=``sin``(t),y=``sin``(at)``, για` `a=0..10` `και` `t=0..2π`

Είσοδος :

`animation(seq(plotpolar(1-a*0.01*t```^```2, t,0,5*pi,tstep=0.01),a,1,10))`

Έξοδος :

`Η ακολουθλια των πολικών καμπύλων που ορίζονται από την` `ρ=1-a*0.01*t``2``, για` `a=0..10` `και` `t=0..5π`

Είσοδος :

`plotfield(sin(x*y),[x,y]); animation(seq(plotode(sin(x*y),[x,y],[0,a]),a,-4,4,0.5))`

Έξοδος :

`Το πεδίο κλίσεων της` `y′=sin(xy)``και η ακολουθία των ολοκληρωτικών καμπύλων που περνάνε από τα σημεία` `(0,a)``για` `a``=-4,-3.5,…,3.5,4`

Είσοδος :

`animation(seq(display(square(0,1+i*a),filled),a,-5,5))`

Έξοδος :

`Η ακολουθία των τετραγώνων που ορίζονται από τα σημεία 0 και` `1+i``*``a` `για` `a=-5..5`

Είσοδος :

`animation(seq(line([0,0,0],[1,1,a]),a,-5,5))`

Έξοδος :

`Η ακολουθία των γραμμών που ορίζονται από τα σημεία [0,0,0] και [1,1,``a``] για` `a=-5..5`

Είσοδος :

`animation(seq(plotfunc(x```^```2-y```^```a,[x,y]),a=1..3))`

Έξοδος :

`Η ακολουθία των` `"3D"``επιφανειών που ορίζονται από την` `x``2``-y``a``, για` `a=1..3`

Είσοδος :

`animation(seq(plotfunc((x+i*y)```^```a,[x,y], display=filled),a=1..10)`

Έξοδος :

`Η ακολουθία των` `"4D"``επιφανειών που ορίζονται από την` `(x+i*y)``a``, για` `a=0..10` `με τα χρώματα του ουράνιου τόξου`

Σχόλιο Μπορούμε επίσης να ορίσουμε την ακολουθία των αντικειμένων με ένα προγραμμα. Για παράδειγμα, αν θέλουμε να σχεδιάσουμε τα ευθύγραμμα τμήματα μήκους 1,√2,…,√20 που κατασκευάζονται με ένα ορθογώνιο τρίγωνο πλευράς 1 και το προηγούμενο τμήμα γράφουμε το ακόλουθο πρόγραμμα (σημειώστε ότι υπάρχει η εντολή `c:=evalf(..)` για να εξαναγκάσει προσεγγιστικούς υπολογισμούς, αλλιώς ο χρόνος υπολογισμού θα ήταν πολύ μεγάλος):

     seg(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;}:;

Έπειτα εισάγετε :

`animation(seg(20))`

Βλέπουμε, κάθε σημείο, ένα προς ένα.
ή :

`L:=seg(20); s:=segment(0,L[k])$(k=0..20)`

Βλέπουμε 21 τμήματα. Έπειτα, εισάγετε:

`animation(s)`

Βλέπουμε, κάθε ευθύγραμμο τμήμα, ένα προς ένα.