Renata Villaseñor, tarea 7

De Casiopea
Renata Villaseñor, tarea 7



TítuloRenata Villaseñor, tarea 7
Tipo de ProyectoProyecto de Curso, Proyecto de Tutoría
Palabras Clavetarea 7
Del CursoImagen Escrita 2012,
CarrerasDiseño Gráfico"Diseño Gráfico" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property., Diseño Industrial"Diseño Industrial" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property.
Alumno(s)Renata Villaseñor
ProfesorHerbert Spencer

La tarea 7 consiste en mostrar la evolución de varios insectos, esta evolución se muestra apretando la tecla c, que hace que cada insecto cambie de forma y de tamaño.

Insect[] ins; 
float margin = 100;

void setup() {

  size(500, 500);
  int ynum =11;
  int xnum = 9;
  ins = new Insect[ynum * xnum];
  float ysp = (height - (2 * margin)) / ((float)ynum - .7);
  float xsp = (width - (2 * margin)) / ((float)xnum - .7);
  int c = 0; 
  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++;
    }
  } 
  noSmooth();
}


void draw() {

  background(345, 465, 876, 745);
  for (int i = 0; i < ins.length; i++) {
    ins[i].render();
  }
}


class Insect {

  float x, y;
  float[][] v; 
  int vn; 
  float tam;
  float w, h;
  Insect(float x, float y) {
    this.x = x;
    this.y = y;
    vn = round(random(52, 80));
    v = new float[vn][786];
    tam = 20;
    init();
  }
  void init() {
    w = tam/6.8;
    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();
    stroke(#77EA6F);
    strokeWeight(.6);
    beginShape();
    vertex(v[0][0], v[0][1]);
    for (int i = 0; i < vn; i++) {
      curveVertex(v[i][1], v[i][1]);
    }
    vertex(v[vn-1][0], v[vn-3][1]);
    endShape();
  }
  void render() {
    pushMatrix();
    {
      translate(x, y);
      trace();
      scale(- 2, 1);
      trace();
    }
    popMatrix();
  }
}

void keyPressed() {

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