Jaime Pérez Moena: Presentación al Lenguaje Abierto
De Casiopea
Título | Presentación al Lenguaje Abierto, Cuarto Año |
---|---|
Período | 2011- |
Alumno(s) | Jaime Pérez Moena |
Profesor | Herbert Spencer, Marcelo Araya |
Creación de un autorretrato desde Processing
A partir del código "Paisaje" que nos entrega Herbert, desde Processing, se realiza una variación de éste para generar un nuevo pincel. Con una fotografía de 500 x 178 píxeles, el código toma la información del color y lo transforma en trazos con una dirección y sentido en particular. El resultado, son grupos de trazos inscritos en superficies cuadradas. Luego el archivo es impreso a un tamaño real.
<no wiki> import processing.pdf.*; PImage paisaje; float margenIzquierda = 85; float margenArriba = 85; float margenDerecha = 85; float escala; boolean pinta; int x, y; void setup() { paisaje = loadImage("jaime.jpg"); size(1100, 500); smooth(); beginRecord(PDF, "retrato"+day()+hour()+minute()+".pdf"); float ancho = width - (margenIzquierda + margenDerecha); escala = ancho / (float)paisaje.width; strokeCap(SQUARE); background(255); x = y = 0; pinta = true; } void draw() { float spacer = 8; float plotX = map(x, 0, paisaje.width, margenIzquierda, width-margenDerecha); float plotY = map(y, 0, paisaje.height, margenArriba, margenArriba + (paisaje.height * escala)); color c = paisaje.get(x,y); if(pinta) pincel(plotX, plotY, c, spacer); if (x < paisaje.width - spacer) { x+= spacer; } else if(y < paisaje.height) { x = 0; y += spacer; } if (y > paisaje.height) { println("listo!"); endRecord(); pinta = false; } } void pincel(float x, float y, color c, float amp) { int achurados = (int)map(brightness(c), 100, 255, 100, 10); for (int i = 0; i < achurados; i++) { pushMatrix(); { translate(x + random(-amp,amp), y + random (-amp,amp)); rotate(hue(c)/100 * HALF_PI); strokeWeight((255 - brightness(c))/100 * amp/10); stroke(c, 100); noFill(); float largo = brightness(c)/255 * amp; beginShape(); vertex(-amp/30, 0); bezierVertex(-largo, -saturation(c)/55, amp/8, saturation(c)/55, largo, 0); endShape(); } popMatrix(); } } </no wiki>