Valentina Véliz, tarea 7

De Casiopea
Tarea 7, Insectitos loquillos


TítuloTarea 7, Insectitos loquillos
Tipo de ProyectoProyecto de Curso
Palabras Clavetarea 7, imagen escrita 2012
Período2012-
AsignaturaImagen Escrita 2012, Taller Inicial Común 1ª y 2ª Etapa,
Del CursoImagen Escrita 2012, Taller Inicial 1ª y 2ª Etapa,
CarrerasArquitectura
Alumno(s)Valentina Véliz
ProfesorHerbert Spencer

/*La idea es que los supuestos insectos dados en el ejemplo del profesor en clases cambien de color azarosamente al igual que el orden en que aparecen*/



Insect[] ins; 
float margin = 70;
color start=color(0, 0, 0);
color finish;
float amt = 0.0;

void setup() {

  size(700, 700);
  stroke(start);
  finish = color(random(255), random(255), random(255));

  int ynum = 7;
  int xnum = 7;
  ins = new Insect[ynum * xnum];
  float ysp = (height - (2 * margin)) / ((float)ynum - 1);
  float xsp = (width - (2 * margin)) / ((float)xnum - 1);
  int c = 0; // counter
  for (float y = margin; y <= height - margin; y+= ysp) {
    for (float x = margin; x <= width - margin; x += xsp) {
      ins[c] = new Insect(x, y);
      c++;
    }
  }
  smooth();
}


void draw() {

  background(#676766);
  for (int i = 0; i < ins.length; i++) {
    ins[i].render();
  }
}


class Insect {

  float x, y;
  float[][] v; // vertices
  int vn; // número aleatorio de vértices
  float tam; // tamaño
  float w, h; // width, height
  Insect(float x, float y) {
    this.x = x;
    this.y = y;
    vn = round(random(25, 30));
    v = new float[vn][10];
    tam = 70;
    init();
  }
  void init() {
    w = tam/2;
    h = tam;
    for (int i = 0; i < vn; i++) {
      v[i][0] = random(w);
      v[i][1] = random(-h/2, h/2);
    }
  }
  void trace() {
    noFill();
    amt+=.01;
    if (amt >= 1) {
      amt = 0.0;
      start = finish;
      finish = color(random(255), random(255), random(255));
    }
  stroke(lerpColor(start, finish, amt));
  
  stroke(start);
  strokeWeight(.8);
  beginShape();
  vertex(v[0][0], v[0][1]);
  for (int i = 0; i < vn; i++) {
    curveVertex(v[i][0], v[i][1]);
  }
  vertex(v[vn-1][0], v[vn-1][1]);
  endShape();
}
void render() {
  pushMatrix();
  {
    translate(y, x);
    trace();
    scale(-1, 1);
    trace();
  }
  popMatrix();
}
}

void keyPressed() {

  if (key == '3') {
    for (int i = 0; i < ins.length; i++) {
      ins[i].init();
    }
  }
  if (key == '1') {
    for (int i = 0; i < ins.length; i++) {
      ins[i].tam++;
      ins[i].init();
    }
  }
  if (key == '2') {
    for (int i = 0; i < ins.length; i++) {
      ins[i].tam--;
      ins[i].init();
    }
  }
}