Joan Soler-Adillon || Tutorial de Processing
Despatx 52.803 (Campus de la comunicació, UPF) || 93 542 1238
----------------------------------------------------------------
----------------------------------------------------------------
TUTORIAL DE PROCESSING || Secció 6: 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.
En Processing, per crear números aleatoris utilitzrem la funció random(). A random() li podem enviar un o dos paràmetres. Si li'n enviem un:
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:
¿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í:
É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().
Primer, un exemple simple de com utilitzar un condicional juntament amb un random(). En cada iteració del procés creem un número aleatori entre -1 i 1. Segons sigui major o menor a zero, farem que el vent afecti la direcció de la bola:
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.
Source code: bolaRev
---------------------------------------------------------------------------------------