Diferencia entre revisiones de «Eduardo Arratia tarea Insectos 2012»

De Casiopea
(Página creada con '{{Proyecto |Título=Eduardo Arratia tarea insectos 2012 |Tipo de Proyecto=Proyecto de Curso |Palabras Clave=tarea 7 |Carreras Relacionadas=Arquitectura |Cursos Relacionados=Imag...')
 
Sin resumen de edición
 
(No se muestra una edición intermedia del mismo usuario)
Línea 4: Línea 4:
|Palabras Clave=tarea 7
|Palabras Clave=tarea 7
|Carreras Relacionadas=Arquitectura
|Carreras Relacionadas=Arquitectura
|Cursos Relacionados=Imagen Escrita 2012,  
|Cursos Relacionados=Imagen Escrita 2012,
|Profesor=Herbert Spencer,  
|Profesor=Herbert Spencer,
|Alumnos=Eduardo Arratia,  
|Alumnos=Eduardo Arratia,
|Imagen=Dalkjdaljdlad3334rkjfl.png
}}
}}
Insect[] ins;
el número de elementos rompe el esquema de la cuadrilla oculta bajo el espesor de los trazos que forman cada elemento.
 
<pre><nowiki>Insect[] ins;
float margin = 100;
float margin = 100;


Línea 19: Línea 22:
   ins = new Insect[ynum * xnum];
   ins = new Insect[ynum * xnum];


   float ysp = (height - (2 * margin)) / ((float)ynum - 1);
   float ysp = (height - (2 * margin)) / ((float)ynum - .8);
   float xsp = (width - (2 * margin)) / ((float)xnum - 1);
   float xsp = (width - (2 * margin)) / ((float)xnum - .8);


   int c = 0; // counter
   int c = 0;  


   for (float y = margin; y <= height - margin; y+= ysp) {
   for (float y = margin; y <= height - margin; y+= ysp) {
Línea 44: Línea 47:
class Insect {
class Insect {
   float x, y;
   float x, y;
   float[][] v; // vertices
   float[][] v;  
   int vn;  // número aleatorio de vértices
   int vn;   
   float tam;  // tamaño
   float tam;   
   float w, h; // width, height
   float w, h;  


   Insect(float x, float y) {
   Insect(float x, float y) {
     this.x = x;
     this.x = x;
     this.y = y;
     this.y = y;
     vn = round(random(7, 8));
     vn = round(random(12, 40));
     v = new float[vn][5];
     v = new float[vn][5];
     tam = 20;
     tam = 50;
     init();
     init();
   }
   }
Línea 63: Línea 66:
     for (int i = 0; i < vn; i++) {
     for (int i = 0; i < vn; i++) {
       v[i][0] = random(w);
       v[i][0] = random(w);
       v[i][1] = random(-h, h);
       v[i][1] = random(-h, h/4);
     }
     }
   }
   }
Línea 76: Línea 79:
       curveVertex(v[0][0], v[i][1]);
       curveVertex(v[0][0], v[i][1]);
     }
     }
     vertex(v[vn-1][0], v[vn-1][1]);
     vertex(v[vn-5][0], v[vn-1][1]);
     endShape();
     endShape();
   }
   }
Línea 85: Línea 88:
       translate(x, y);
       translate(x, y);
       trace();
       trace();
       scale(-1, 1);
       scale(-3, 3);
       trace();
       trace();
     }
     }
Línea 111: Línea 114:
   }
   }
}
}
}</nowiki></pre>

Revisión actual - 22: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();
    }
  }
}
}