Camilo Escobar: insectario

De Casiopea


Títuloinsectario
Tipo de ProyectoProyecto de Curso
Palabras Clavetarea 7
AsignaturaTaller Inicial Común 1ª y 2ª Etapa,
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)Camilo Escobar
ProfesorHerbert Spencer




Insect[] ins; float margin = 60;

void setup() {
 size(700, 700);
 int ynum = 3;
 int xnum = 4;
 ins = new Insect[ynum * xnum];
 float ysp = (height - (2 * margin)) / ((float)ynum - 1);
 float xsp = (width - (2 * margin)) / ((float)xnum - 1);
 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++;
   }
 } 
 smooth();
}


void draw() {

 background(255);
 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(5, 24));
   v = new float[vn][7];
   tam = 150;
   init();
 }
 void init() {
   w = tam/3;
   h = tam/3;
   for (int i = 0; i < vn; i++) {
     v[i][0] = random(w);
     v[i][1] = random(-h/2, h/2);
   }
 }
 void trace() {
   noFill();
   stroke(0);
   strokeWeight(0.8);
   beginShape();
   vertex(v[1][0], v[0][0]);
   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(x, y);
     trace();
     scale(-1, 1);
     trace();
   }
   popMatrix();
 }
}

void keyPressed() {

 if (key == 'j') {
   for (int i = 50; i < ins.length; i++) {
     ins[i].init();
   }
 }
 if (key == 'o') {
   for (int i = 50; i < ins.length; i++) {
     ins[i].tam++;
     ins[i].init();
   }
 }
 if (key == 's') {
   for (int i = 50; i < ins.length; i++) {
     ins[i].tam--;
     ins[i].init();
   }
 }
  if (key == 'e') {
   for (int i = 50; i < ins.length; i++) {
     ins[i].init();
   }
 }
}