2.3. Segona part: estructures de control
2.3.5. Solucions als exercicis del repte
Solució a l’exercici plantejat al final de l’apartat dels condicionals
var figura = "quadrat"; // Canvieu aquest valor per a provar l’exercici function setup() { createCanvas(400, 400); } function draw() { background(200); if (figura == "cercle") { ellipse(200,200,100,100); } if (figura == "quadrat") { rect(150,150,100,100); } }
Degradat vertical
for (var i=0; i<=255; i++ ) { stroke(i); line(xIni,yIni+i,xIni+256,yIni+i); }
Degradat horitzontal però de blanc a negre
for (var i=0; i<=255; i++ ) { stroke(256-i); line(xIni+i,yIni,xIni+i,yIni+256); }
Triangle degradat
for (var i=0; i<=255; i++ ) { stroke(i); line(xIni,yIni+i,xIni+i,yIni); }
Degradat oblic
for (var i=0; i<=255; i++ ) { stroke(i); line(xIni,yIni+i,xIni+i,yIni); } for (var i=0; i<=255; i++ ) { stroke(256-i); line(xIni+i,yIni+256,xIni+256,yIni+i); }
Solució a l’exercici del rellotge
Anirem veient el codi a poc a poc.
Primer tenim el bucle que fem amb la instrucció for:
for (var i=0;i<60;i++){
Ho repetim 60 cops perquè 60 són els minuts i segons que té un rellotge.
Dins d’aquest for hi tenim quatre if:
if (i % 5 == 0) { stroke(0); line(0, -40, 0, -60); }
Aquest primer if ens dibuixa totes les línies del rellotge. No volem pintar les 60 línies, sinó que només en pintem una per cada 5 minuts (igual que en un rellotge). Per això calculem el residu de dividir els minuts per 5 i pintem si el residu és 0 (és un múltiple de 5).
Segon if:
if (i == (hores % 12 * 5)) { stroke(255,0,0); line(0, -40, 0, -70); }
Aquest if dibuixa la maneta de les hores. Mirem l’hora que és (està guardada a la variable hores), calculem el residu de dividir per 12 (perquè les hores van de 0 a 23 i així passem a hores de 0 a 11) i multipliquem per 5 (per a buscar el minut adequat per a pintar aquesta hora). Pintem les hores de color vermell i, a més a més, fem la ratlla una mica més llarga.
Tercer if:
if (i == minuts) { stroke(0,0,255); line(0, -40, 0, -70); }
Pintem la maneta dels minuts. Com que tenim 60 minuts, això és més fàcil, pintarem aquella ratlla que coincideixi amb els minuts actuals. També la fem més llarga i, a més a més, de color verd.
I quart if:
if (i == segons) { stroke(255); line(0, -40, 0, -60); }
És el mateix que els minuts. En aquest cas, pintem de blanc.
Prova l’exercici i canvia els valors que creguis convenient.