Casiopea

De Casiopea



<processingjs>

int cuantosEstorninos = 600; Estornino[] estorninos; boolean trazos = false;

float inc, zoom;

void setup() {

 size(500, 500, P3D);
 estorninos = new Estornino[cuantosEstorninos];
 int cuantos = 0;
 while (cuantos < cuantosEstorninos) {
   float x = random(-width, width);
   float y = random(-width, width);
   float z = random(-width, width);
   float d = dist(0, 0, 0, x, y, z);
   // radio inicial de ubicación
   if (d < 126) {
     estorninos[cuantos] = new Estornino(x, y, z);
     cuantos++;
   }
 }
 zoom = 100.0;
 sphereDetail(4);

}

void draw() {

 inc = millis()/2000.0;
 pushMatrix();
 translate(width/2, height/2, 0);
 rotateY(inc * .05);
 if (trazos) {
   // línea entre los estorninos cercanos
   for (int i = 0; i < estorninos.length; i++) {
     for (int j = 1; j < i; j++) {
       color c = color(
         map(i, 0, cuantosEstorninos, 0, 250), 
         map(j, 1, cuantosEstorninos, 0, 250), 
         100);
       stroke(c);
       float d = dist(
         estorninos[i].x, 
         estorninos[i].y, 
         estorninos[i].z, 
         estorninos[j].x, 
         estorninos[j].y, 
         estorninos[j].z
         );
       // distancia mínima para dibujar un trazo entre ambos
       if (d < 33) {
         line(
           estorninos[i].x, 
           estorninos[i].y, 
           estorninos[i].z, 
           estorninos[j].x, 
           estorninos[j].y, 
           estorninos[j].z
           );
       }
     }
   }
 } else {
   background(255);
 }
 // dibuja todos los estorninos
 for (int i = 0; i < estorninos.length; i++) {
   estorninos[i].draw();
 }
 popMatrix();

}


class Estornino {

 float x, y, z;
 float dirXY, dirXZ;
 float step;
 int seed;
 Estornino(float _x, float _y, float _z) {
   x = _x;
   y = _y;
   z = _z;
   dirXY = random(TWO_PI);
   dirXZ = random(TWO_PI);
   step = random(.1, .3);
   seed = round(random(99999));
 }
 void calc() {
   noiseSeed(seed);
   dirXY += noise((x+inc)/zoom, (y+inc)/zoom) - .5;
   dirXZ += noise((x+inc)/zoom, (z+inc)/zoom) - .5;
   x += cos(dirXY) * step;
   y += sin(dirXY) * step;
   z += cos(dirXZ) * step;
 }
 void draw() {
   calc();
   noStroke();
   fill(0, 100);
   pushMatrix();
   translate(x, y, z);
   sphere(1.5);
   popMatrix();
 }

}

void mousePressed() {

 trazos = !trazos;

}

</processingjs>

Casiopea es un espacio de registro y documentación, de caracter colectivo y colaborativo de la e[ad] de Arquitectura y Diseño PUCV.

Para poder crear o editar los contenidos de esta Wiki debes registrarte en el sistema de personas que unifica bajo una única identidad (nombre de usuario y contraseña) el acceso a todos nuestros sitios y servicios.

Casiopea es una wiki semántica, que describe Proyectos, Publicaciones, Obras, Travesías y las Personas que las construyen, entre otras entidades. Si vas a trabajar aquí te pedimos observar el orden existente así como el formato de las páginas.

Talleres 2024

Presentación 2024

Construcción 2024

Cursos 2024


Taller de Amereida

Archivo