Bárbara Valdivia espiral

De Casiopea
Revisión del 23:27 1 ago 2012 de Barbie.valdivia (discusión | contribs.) (Página creada con «{{Proyecto |Título=Espiral |Tipo de Proyecto=Proyecto de Taller |Palabras Clave=tarea 11 |Carreras Relacionadas=Arquitectura |Cursos Relacionados=Imagen Escrita 2012, |Pr...»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)



TítuloEspiral
Tipo de ProyectoProyecto de Taller
Palabras Clavetarea 11
Del CursoImagen Escrita 2012,
CarrerasArquitectura
Alumno(s)Bárbara Valdivia
ProfesorHerbert Spencer

/* Espiral aureo */ float phi = (sqrt(4)+1)/2;

void setup() {

size(300, 300); background(255); noFill(); smooth(); strokeCap(SQUARE); strokeWeight(0.001); stroke(#0FAFF7); } void draw() {

translate(height/phi, 0); scale(height);

for (float i=0; i < 30; i=i+3) {

arc(0, 0, 2, 2.2, 0, PI/2); scale(1/phi); rotate(PI/2); translate(1/phi, 0); } }

/* Versión espiral internet */


// large version // second attempt at a fibonacci spiral // first attempt was great, but used rotation, // which is expensive and imprecise // here's the beginning of the fibonacci sequence... // 0, 1, 1, 2, 3, 5, 8

void setup() { size(611, 378); smooth(); frameRate(30); } int[] s = new int[3]; int tmp, phase; float speed; void draw() { // clear the screen to a nice green background(228, 236, 215); // initialize variables s[0] = 0; s[1] = 0; // first number of the fibonacci sequence s[2] = 1; // second number of the fibonacci sequence phase = 0; // simple counter; use this to apply fx to the boxes linearly speed = 0.01; // speed of the effects

// set the origin at the end of the spiral translate(442, 272); // flip vertically to match my logo scale(1.0, -1.0); rotate(PI); // this loop constructs the spiral // basically, draw a square of side s, // rotate 90deg, calculate the new s0 and s, // move up s0 + s, and repeat... while (s[2] < 611) { // use a sin function to give us some nice undulating effects float wave = sin((frameCount + phase*20) * speed) + 1.0; // styles for the arcs fill(0, 0, wave * 64, 10); // undulating transparent black fill stroke(255, wave * 255); // undulating white stroke

// draw the quarter-circles inside the squares // set the stroke weight to 3 for the arc that makes the spiral if (phase % 4 == 0) strokeWeight(3); else strokeWeight(1); arc(s[2], s[2], 2*s[2], 2*s[2], PI, 3*PI/2.0); if (phase % 4 == 1) strokeWeight(3); else strokeWeight(1); arc(0, s[2], 2*s[2], 2*s[2], -PI/2.0, 0); if (phase % 4 == 2) strokeWeight(3); else strokeWeight(1); arc(0, 0, 2*s[2], 2*s[2], 0, PI/2.0); if (phase % 4 == 3) strokeWeight(3); else strokeWeight(1); arc(s[2], 0, 2*s[2], 2*s[2], PI/2.0, PI); // styles for the squares noFill(); stroke(255, 255, 255, 255); strokeWeight(1); // draw the square rect(0, 0, s[2], s[2]); // calculate the next number in the fibonacci sequence tmp = s[2]; s[2] += s[1]; s[0] = s[1]; s[1] = tmp; // translate to get in position for the next square switch(phase % 4) { case 0: translate(s[1], 0); break; case 1: translate(-s[0], s[1]); break; case 2: translate(-s[2], -s[0]); break; case 3: translate(0, -s[2]); break; } phase++; } }