32 Javasript: Animazione Varianti 2.

 

Per affrontare questa scheda è necessario aver finito la Scheda 31. In particolare è necessario avere 3 punti che viaggiano e rimbalzano sui bordi dello schermo.

In questa scheda ci sono vari esperimenti diversi: ogni esperimento parte dal programma con tre punti che si muovono in linea retta sullo schermo.

 

Accelerazione di Gravità. Immaginiamo che sui punti agisca l’accelerazione di gravità. Ad ogni passo la velocità vy1 dovrà aumentare verso il basso. Sarà sufficiente aggiungere il seguente comando all’inizio della funzione aggiornaPosizione()

vy1 -= 1;

per avere il primo punto che viene attratto verso il basso. Aggiungete i comandi analoghi per attivare l’accelerazione di gravità anche sugli altri punti.

 

Accelerazioni casuali come esserini. Disattivate quanto fatto al punto precedente. Facciamo adesso in modo che la velocità vari in maniera casuale:

vmax = 8;

vx1 += Math.random()*2 - 1; // numero casuale tra -1 e 1

if(vx1>vmax) {vx1=0;}

if(vx1<-vmax) {vx1=0;}

In questo modo, ad ogni passo la velocità varia di un numero compreso tra -1 e 1. Se diventa troppo grande o troppo negativa viene rimessa a zero. 

Fate la stessa cosa con le variabili vx1, vy1, vx2, vy2, vx3, vy3 ed otterrete tre esserini che vagano sullo schermo.

 

Verso Sierpinsky. Disattivate le varianti precedenti.

Create una funzione che calcoli la media tra due numeri:

function media(a,b) {

m = (a+b)/2;

return m;

}

Usando questa funzione create la funzione che disegna la seguente figura (la funzione triangolo() è quella che avete fatto in passato):

 

function sierpinsky(x1,y1, x2,y2, x3,y3) {

triangolo(x1,y1, x2,y2, x3,y3);

 

var mx1 = media(x1,x2);

var my1 = media(y1,y2);

 

var mx2 = media(x2,x3);

var my2 = media(y2,y3);

 

var mx3 = media(x3,x1);

var my3 = media(y3,y1);

triangolo(mx1,my1, mx2,my2, mx3,my3);

}