Repetición: ejercicio de dibujar un círculo fractal

March 26, 2008 – 12:06 am

Si pensáis que habéis entendido bien la recursión podéis intentar el ejercicio siguiente.

Ahora os toca a vosotros revisar la recursión. Intentad conseguir mediante el uso de una función recursiva una imagen similar a la siguiente:

Circulo Fractal Simple

Pistas:

  • ellipse(int x, int y, int radioX, int radioY)

permite dibujar una elipse en el punto x, y de anchura radioX y de altura radioY.

e.g. de uso. Para dibujar un círculo en (0,0) de radio 400 usar el comando:

ellipse(0, 0, 400, 400)

Para los más atrevidos, se puede intentar crear la siguiente imagen:

Circulo Fractal

Pistas:

  • boolean x

a cada vez que entramos en la recursión el círculo cambia su relleno de negro a blanco a negro consecutivamente. Es útil definir un parámetro adicional para dibujar el circulo que definirá si el circulo que definiremos es negro o no. Variables de este tipo se llaman boolean

e.g. de uso:

1
2
3
4
5
6
7
8
9
void circuloFractal(int radio, boolean pintaNegro){
   // el principio de la función
   if(pintaNegro){
     fill(0);
   }else{
     fill(255);
   }
   // el resto de la función
}
  • para pasar una variable de verdadero a falso y viceversa, podemos hacer uso del operador ! (si, una exclamación delante de la variable basta)

e.g. de uso:

1
2
3
4
5
6
7
8
// Primero definimos una variable boolean con un valor positivo
boolean pintaNegro = true;
pintaNegro = !pintaNegro;
// Ahora la variable pintaNegro tendrá un valor negativo
pintaNegro = !pintaNegro;
// Y ahora la variable pintaNegro tendrá un valor positivo de nuevo
// Esta es la manera de alternar el valor de una variable
// que solo puede tener los valores positivo y negativo

Post a Comment