lunes, 24 de octubre de 2011



Aqui el código de processing de la espiral logarítmica




//

float s1=.01; //velocidad del giro

float f1=-HALF_PI; //establece la posicion en radianes

float x1, x2, x3, x4, y1, y2, y3, y4;

float r1, r2, r3, r4, r5, r6, r7, r8;

float a1= .618; //factores de proporcion

float a2= .382; //

float posicionX; // variable para resumir ubicacion en X

float posicionY; // variable para resumir ubicacion en Y


void setup() {

size (618, 382);

background(100);

stroke(180);

}

void draw() {

float w= width;

float h= height;

f1-=s1;

//centros de los circulos

x1= w*a1;

x2= x1+((w-x1)*a2);

x3= x2-((x2-x1)*a2);

x4=x3+((x2-x3)*a2);

y1= h*a1;

y2= y1+((h-y1)*a2);

y3= y2-((y2-y1)*a2);

y4= y3+((y2-y3)*a2);

//radios

r1= x1;

r2= y1;

r3= h-y1;

r4= x2-x1;

r5= x3-x1;

r6= y3-y1;

r7= x2-x4;

r8= y2-y4;

//variables de posicion y radio

float pX=x1;

float pY=h;

float r=r1;

line(x1, 0, x1, h);

line(x1, y1, w, y1);

line(x2, y1, x2, h);

line(x2, y2, x1, y2);

line(x3, y2, x3, y1);

line(x3, y3, x2, y3);

line(x4, y3, x4, y2);

line(x4, y4, x3, y4);

if (f1<-3.14){

pY=y1;

r=r2;

}

if (f1<-4.71){

pX=x2;

r=r3;

}

if (f1<-6.32){

pY=y2;

r=r4;

}

if (f1<-7.85){

pX=x3;

r=r5;

}

if (f1<-9.42){

pY=y3;

r=r6;

}

if (f1<-10.99){

pX=x4;

r=r7;

}

if (f1<-12.56){

pY=y4;

r=r8;

}

if (f1<-14.13){

s1=0;

}

posicionX= pX+sin(f1)*r;

posicionY=pY+cos(f1)*r;

point (posicionX, posicionY);

println(posicionX);
}

/*pivotes y radio

1 x1, h, r1

2 x1, y1, r2

3 x2, y1, r3

4 x2, y2, r4

5 x3, y2, r5

6 x3, y3, r6

*/

No hay comentarios:

Publicar un comentario