Eduardo Arratia Tarea 9 imagen renovada
De Casiopea
Título | Eduardo Arratia Tarea 9 imagen renovada |
---|---|
Tipo de Proyecto | Proyecto de Curso |
Palabras Clave | tarea 9 |
Del Curso | Imagen Escrita 2012, |
Carreras | Arquitectura |
Alumno(s) | Eduardo Arratia |
Profesor | Herbert Spencer |
La imagen a continuación es una mejora de la imagen anterior de la tarea anterior, dejando margenes y reduciendo el tamaño de los triángulos para evitar la transposición de los triángulos que producía triángulos muy sobresalientes con respecto al margen.
import processing.pdf.*; PImage leon; // la foto: el encuadre, la escena, el paisaje PFont font; // la fuente tipográfica String[] code; // el texto del código /* Al exportar un PDF, Processing translada las unidades de pixeles a puntos tipográficos. 1 pt = 0.0352778 cm 1 cm = 28.346438837 pt */ float margenIzquierda = 110; float margenArriba = 20; float margenDerecha = 200; float margenAbajo = 100; float escala; void setup() { leon = loadImage("leon.jpg"); // se carga la imagen, se "construye" el objeto PImage leon size(609, 765, PDF, "Eduardo_Arratia_Tarea_8A.pdf"); // tamaño carta // cálculos para escalar desde la imagen hacia el pincel float ancho = width - (margenIzquierda + margenDerecha); escala = ancho/(float)leon.width; noStroke(); noLoop(); background(255); font = createFont("Courier", 10, true); // construyo la tipografía a partir de una fuente de sistema textFont(font, 10); code = loadStrings("trazo.pde"); // cargo el código "trazo" (el pincel) } void draw() { float spacer = 10; // muestreo regular desde la foto, esto se puede modificar.... for (int y = 0; y < leon.height; y += spacer) { for (int x = 0; x < leon.width; x += spacer) { // obtengo el color float plotX = map(x, 0, leon.width, margenIzquierda, width-margenDerecha); float plotY = map(y, 0, leon.height, margenArriba, margenArriba + (leon.height * escala)); color c = leon.get(x, y); trazo(plotX, plotY, c, spacer); encuadre(); } } printCode(); texto(); println("Pdf listo presione Ctrl+K para verlo"); exit(); } void printCode() { float interlinea = 1; fill(0); for (int i = 0; i < code.length; i++) { // escribo cada línea de código en la pantalla text(code[i], width/4, 6 * margenArriba + leon.height * escala + interlinea); interlinea += 15; } } void texto() { fill(0); text("Eduardo Arratia Ramírez", width - margenDerecha,height - margenAbajo); text("1 Año Arquitectura", width - margenDerecha, (height - margenAbajo)+10); } void encuadre(){ noStroke(); fill(255); rect(0, 0, 170, height); rect(0, 0, width, 80); rect(width-150, 0, 150, height); rect(0, height/2 + 80, width, height/2 + 80); } ----------- void trazo(float x, float y, color c, float amp) { int trazos = round(map(brightness(c), 0, 255, 20, 0)); pushMatrix(); { translate(x, y); stroke(c); // color de la imagen pasada al trazo strokeWeight(random(1, 20)); // grosor de la línea triangle(50, 60, 50, 60, 70, 40); } popMatrix(); }