3. Reto 3. Interacciones

3.7. Solución al ejercicio relacionado con el ejemplo 5-14

A priori la solución es fácil, solo hay que añadir un radius— en el else. Pero no funciona como esperaríamos porque, cuando radius es un número negativo (una cosa que es fácil que pase), el círculo se va haciendo grande y no hay manera de pararlo.

La solución pasa por limitar, mediante una instrucción if el valor mínimo de la variable radius. Se ha fijado en 10. Pero podéis probar con otros números.

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);
}