3. Repte 3. Interaccions

3.7. Solució a l’exercici relacionat amb l’exemple 5-14

A priori, la solució és fàcil, només cal afegir un radius— a l’else. Però no funciona com esperaríem perquè, quan el radius és un nombre negatiu (cosa que és fàcil que passi), el cercle es va fent gran i no hi manera d’aturar-lo.

La solució passa per limitar, mitjançant una instrucció if el valor mínim de la variable radius. S’ha fixat a 10. Però podeu provar amb altres nombres.

var x = 120;
var y = 60;
var radius = 24;

function setup() {
 createCanvas(240, 120);
 ellipseMode(RADIUS);
}

function draw() {
 background(204);
 var d = dist(mouseX, mouseY, x, y);
 if (d < radius) { radius++; fill(0); } else { if (radius > 10) {
  	 radius--;
  }
  fill(255);
 }
 ellipse(x, y, radius, radius);
}