Eduardo Arratia tarea Insectos 2012
De Casiopea
Título | Eduardo Arratia tarea insectos 2012 |
---|---|
Tipo de Proyecto | Proyecto de Curso |
Palabras Clave | tarea 7 |
Del Curso | Imagen Escrita 2012, |
Carreras | Arquitectura |
Alumno(s) | Eduardo Arratia |
Profesor | Herbert Spencer |
Insect[] ins; float margin = 100;
void setup() {
size(700, 700);
int ynum = 10; int xnum = 10;
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(#A2A5C4); 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(7, 8)); v = new float[vn][5]; tam = 20; init(); }
void init() { w = tam ; h = tam; for (int i = 0; i < vn; i++) { v[i][0] = random(w); v[i][1] = random(-h, h); } }
void trace() { noFill(); stroke(#957065); strokeWeight(3); beginShape(); vertex(v[1][1], v[1][1]); for (int i = 0; i < vn; i++) { curveVertex(v[0][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 == 'q') { for (int i = 0; i < ins.length; i=i+90) { ins[i].init(); } } if (key == 'w') { for (int i = 0; i < ins.length; i=i+30) { ins[i].tam++; ins[i].init(); } } if (key == 'e') { for (int i = 0; i < ins.length; i= i+5) { ins[9].tam--; ins[20].init(); } }
}