Diferencia entre revisiones de «Casiopea»

De Casiopea
Sin resumen de edición
Sin resumen de edición
Línea 7: Línea 7:


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


float inc, zoom;
float inc, zoom;
Línea 31: Línea 33:
   zoom = 100.0;
   zoom = 100.0;
   sphereDetail(4);
   sphereDetail(4);
  background(255);
}
}


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


Línea 108: Línea 113:
     fill(0, 100);
     fill(0, 100);
     pushMatrix();
     pushMatrix();
      translate(x, y, z);
    translate(x, y, z);
      sphere(1.5);
    sphere(1.5);
     popMatrix();
     popMatrix();
   }
   }
}
}
void mousePressed() {
  trazos = !trazos;
}
</processingjs>
</processingjs>



Revisión del 07:53 3 sep 2015



<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, 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

Presentación 2024

Travesías 2024

Proyectos

Post-grados

Diseño

Talleres de Titulación 2024

Proyectos de Título