Diferencia entre revisiones de «Eduardo Arratia tarea Insectos 2012»

De Casiopea
Sin resumen de edición
Sin resumen de edición
 
Línea 11: Línea 11:
el número de elementos rompe el esquema de la cuadrilla oculta bajo el espesor de los trazos que forman cada elemento.
el número de elementos rompe el esquema de la cuadrilla oculta bajo el espesor de los trazos que forman cada elemento.


<nowiki>Insect[] ins;
<pre><nowiki>Insect[] ins;
float margin = 100;
float margin = 100;


Línea 114: Línea 114:
   }
   }
}
}
}</nowiki>
}</nowiki></pre>

Revisión actual - 21:45 30 may 2012

Eduardo Arratia tarea insectos 2012



TítuloEduardo Arratia tarea insectos 2012
Tipo de ProyectoProyecto de Curso
Palabras Clavetarea 7
Del CursoImagen Escrita 2012,
CarrerasArquitectura
Alumno(s)Eduardo Arratia
ProfesorHerbert Spencer

el número de elementos rompe el esquema de la cuadrilla oculta bajo el espesor de los trazos que forman cada elemento.

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 - .8);
  float xsp = (width - (2 * margin)) / ((float)xnum - .8);

  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(#A2A5C4);
  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(12, 40));
    v = new float[vn][5];
    tam = 50;
    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/4);
    }
  }

  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-5][0], v[vn-1][1]);
    endShape();
  }

  void render() {
    pushMatrix();
    {
      translate(x, y);
      trace();
      scale(-3, 3);
      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();
    }
  }
}
}