Eduardo Arratia Tarea 8 Impresionismo

De Casiopea


LEONKNSDAD.png


TítuloEduardo Arratia Tarea 8 Impresionismo
Tipo de ProyectoProyecto de Curso
Palabras Clavetarea 8
AsignaturaTaller Inicial 1ª y 2ª Etapa
Del CursoImagen Escrita 2012
CarrerasArquitectura
Alumno(s)Eduardo Arratia
ProfesorHerbert Spencer
El trabajo consta de una fotos propia, los triángulos se van superponiendo unos 
a otros dando forma al dibujo resaltando rasgos esenciales.




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_8.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("Intense", 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);
    }
  }
 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);
}

// TRAZO


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, 10, 80, 70, 10, 40);
  }
  popMatrix();
}