Tarea 7

De Casiopea
Tarea 7


TítuloTarea 7
Tipo de ProyectoProyecto de Curso
Palabras ClaveTarea 7, imagen escrita
Período2012-
AsignaturaTaller Inicial Común 1ª y 2ª Etapa,
Del CursoImagen Escrita 2012,
CarrerasDiseño Gráfico, Diseño Industrial
Alumno(s)Alexandra Staig
ProfesorHerbert Spencer

Insertar aquí texto sin formato Insectos variados y adición de movimientos y transformaciones de ellos con teclas "q", "a" y "z".

Insect[] ins;

float margin =100;

void setup() {

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


void draw() {

background(255);
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(22, 20));
  v = new float[vn][7];
  tam = 50;
  init();
}
void init() {
  w = tam/5;
  h = tam;
  for (int i = 0; i < vn; i++) {
    v[i][0] = random(w);
    v[i][1] = random(-h/2.5, h/2.5);
  }
}
void trace() {
  noFill();
  stroke(#6B6156);
  strokeWeight(2);
  beginShape();
  vertex(v[0][1], v[0][1]);
  for (int i = 0; i < vn; i++) {
    curveVertex(v[i][0], v[i][1]);
  }
  vertex(v[vn-2][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++) {
    ins[i].init();
  }
}
if (key == 'a') {
  for (int i = 0; i < ins.length; i++) {
    ins[i].tam++;
    ins[i].init();
  }}
    if (key == 'z') {
   for (int i = 0; i < ins.length; i++) {
     ins[i].tam--;
     ins[i].init();
   }saveFrame();
}
}