Daniel Moris: Mariposas Tecknicolores

De Casiopea
Daniel Moris: Mariposas Tecknicolores


TítuloDaniel Moris: Mariposas Tecknicolores
Tipo de ProyectoProyecto de Curso
Palabras Clavetarea 7
AsignaturaImagen Escrita 2012,
Del CursoImagen Escrita 2012,
Alumno(s)Daniel Moris
ProfesorHerbert Spencer
Título: Mariposas tecknicolores
Alumno: Daniel Moris
Profesor: Herbert Spencer
Ramo: Imagen Escrita
Fecha: 31/05/2012

Está inspirado en la canción 'Mariposa Tecknicolor' de Fito Paez, es por ello que cada una de las mariposas creadas varían de color.
Las muchas combinaciones que se generan hacen que sea difícil que una mariposa sea igual que la otra.
De http://www.learningprocessing.com/examples/chapter-4/example-4-7/ se extrajo la información sobre cómo rellenar con el comando 'random' las partes de las mariposas.
Agradecimientos a Tomás Valladares puesto que en su 'tarea 7' sentó las bases de ésta.

Lista de Comandos:
Control + K: Una vez iniciado, abrirá la carpeta donde está el PDF del archivo.
G: Guarda la imagen.*
N: Cambia colores de cada Mariposa.*
* = Para realizarse debe borrarse la función import.


------------------------------------------------------------------
Mariposa insecto; //Definida la clase.
float h; //Floats que luego se les asociará un valor random.
float e;
float r;
float b;
float t;

void setup() {
  size(609, 765);
  noLoop();
  insecto = new Mariposa(); //Se crea objeto Mariposa.
}

void draw() {
  background(240);
  insecto.parte();
  h = random(255);
  e = random(255);
  r = random(255);
  b = random(255);
  t = random(255);

  for (int i =0; i<600 ;i+=80) { //Grilla de objetos Mariposa.
    for (int j=0; j<760 ;j+=80) {
      pushMatrix();
      translate(i, j);
      insecto.parte();
      popMatrix();
    }
  }
}

void keyPressed() {
  if (key == 'g') { //Guarda la imagen
    saveFrame("img/######.jpg");
  }
  if (key == 'n') { //Cambia colores de cada Mariposa.
    redraw();
  }
}

class Mariposa { //Parámetros de la clase 'Mariposa'.

  int x1; //punt1x
  int y1; //punto1y

  int cx1; //control x1
  int cy1; //control y1

    int re; //relleno on/off

  int i; // for

  Mariposa() { // Variables de Mariposa.

    x1=20;
    y1=20;

    cx1=20;
    cy1=15;
  }

  void parte() { //Acá está definida cada parte de la Mariposa con un fill en random (dado por los floats del comienzo), por lo cual cada una
    //de estas partes se llenará de color en forma aleatoria.

    //Ala superior derecha
    re=(int)random(255);
    if (re<120) {
      fill(h, e, r);
    }
    else {
      fill(h, b, e);
    }
    ellipse (x1+i, y1+i, cx1, cy1);


    //Ala superior izquierda
    re=(int)random(255);
    if (re<120) {
      fill(t, h, e);
    }
    else {
      fill(e, b, t);
    }
    ellipse (x1+i+20, y1+i, cx1, cy1);

    //Ala inferior derecha
    re=(int)random(255);
    if (re<120) {
      fill(r, h, e);
    }
    else {
      fill(b, r, h);
    }
    ellipse (x1+i, y1+i+10, cx1, cy1);

    //Ala inferior izquierda
    re=(int)random(255);
    if (re<120) {
      fill(h, r, t);
    }
    else {
      fill(e, e, b);
    }
    ellipse (x1+i+20, y1+i+10, cx1, cy1);

    //Cuerpo y antenas
    re=(int)random(255);
    if (re<120) {
      fill(r, t, h);
    }
    else {
      fill(h, e, b);
    }
    ellipse (x1+i+10, y1+5, 12, 26);
    line(22, 0, 27, 15);
    line(37, 0, 33, 15);
  }
}