Joan Soler-Adillon || Tutorial de Processing

Despatx 52.803 (Campus de la comunicació, UPF) || 93 542 1238
mail

----------------------------------------------------------------
----------------------------------------------------------------

1.- Random: números aleatoris

Tot i que per norma general cal no abusar-es, els números aleatoris poden ser molt útils per a donar una mica de "vida" als nostres sketches. Per exemple, en l'exemple de la pilota rebotadora (bouncing ball), sempre tenim la mateixa velocitat X i Y, i això produeix al final que els moviments siguin sempre els mateixos.

Una manera de canviar-ho és donar a aquests valros velXivelY un valor aleatori.

random(5);


ens retornarà un número FLOAT (decimal) entre 0 i 5. Si li enviem 2 paràmetres ens retornarà un número FLOAT entre el primer i el segon:

 

random(20,80);

¿Què significa "retornarà" en aquest context? Ho veurem quan treballem les funcions. Per ara, cal tenir en compte que un random() l'assignarem a un valor float així:

 

float numAleatori = random(14);


És molt important tenir en compte que random(), en Processing, retorna sempre floats (números decimals). Així o bé l'utilitzem sempre amb variables d'aquest vipus (la solució més senzilla i recomanable en principi), o sinó haurem de convertir el valor que ens doni random() a un int (una solució un pèl més complexa que ara no val la pena analitzar). En tot cas això es faria amb la funció int().

Your browser does not support the canvas tag.

Source code: vent

  //actualitzem posició segons bufi el vent:
if(viento > 0){//si el vent és major a 0
pos = pos+vel;
}
else { //és a dir, si el vent és menor o igual a 0:
pos = pos-vel;
}

 

I heus ací un exemple de la pilota rebotadora on gràcies a random(), en cada execució al pilota pren velocitats diferents. Pots clicar per a reiniciar les velocitats. Mira mousePressed per veure com.

Your browser does not support the canvas tag.

Source code: bolaRev

 

 

 

---------------------------------------------------------------------------------------

 

Your browser does not support the canvas tag.