Bárbara Valdivia paisaje recorrido

De Casiopea
Revisión del 23:20 20 jun 2012 de Barbie.valdivia (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Paisaje recorrido
TítuloPaisaje recorrido
Tipo de ProyectoProyecto de Taller, Proyecto de Curso
Palabras Clavetarea 8
Período2012-
AsignaturaTaller Inicial 1ª y 2ª Etapa,
Del CursoImagen Escrita 2012,
CarrerasArquitectura
Alumno(s)Bárbara Valdivia
ProfesorHerbert Spencer
PDFArchivo:PaisajeRecorridoPDF.pdf

/*

 Imagen Escrita 2012: Construcción de un trazo (algoritmo pictórico de la luz y el color) en base del proyecto generado por el profesor Herbert. Se recorre la imágen mediante un trazo (pincel). 
 
 */

import processing.pdf.*;

PImage Tulips;  // la foto: el encuadre, la escena, el paisaje
PFont font;      // la fuente tipográfica
String[] code;   // el texto del código



float margenIzquierda = 30; 
float margenArriba  = 30;
float margenDerecha = 30;
float margenAbajo   = 30;
float escala;

void setup() {

  Tulips = loadImage("Tulips.jpg");   // se carga la imagen, se "construye" el objeto PImage Tulips
  size(609, 765, PDF, "Paisaje.pdf");  // tamaño carta

  // cálculos para escalar desde la imagen hacia el pincel

  float ancho = width - (margenIzquierda + margenDerecha);
  escala = ancho/(float)Tulips.width;

  noStroke();
  noLoop(); 
  background(255);

  font = createFont("Tahoma", 8); // construyo la tipografía a partir de una fuente de sistema Tahoma
  textFont(font, 8);

  code = loadStrings("trazo.pde"); // cargo el código "trazo" (el pincel)
}



void draw() {

  float spacer = 12;

  // muestreo regular desde la foto, esto se puede modificar....
  for (int y = 30; y < Tulips.height; y += spacer) {
    for (int x = 25; x < Tulips.width; x += spacer) {

      // obtengo el color
      float plotX = map(x, 0, Tulips.width, margenIzquierda, width-margenDerecha);
      float plotY = map(y, 0, Tulips.height, margenArriba, margenArriba + (Tulips.height * escala));
      color c = Tulips.get(x, y);


      trazo(plotX, plotY, c, spacer);
    }
  }
  printCode();
  println("PDF ready !"); 
  exit();
}


void printCode() {
  float interlinea = 0;
  for (int i = 0; i < code.length; i++) {
    // escribo cada línea de código en la pantalla
    text(code[i], width/4, 2 * margenArriba + Tulips.height * escala + interlinea);
    interlinea += 15;
  }
}

  /***************************************      trazo       ****************************************/ 



/* Pincel de tempera de lado  */


 void trazo (float x, float y, color c, float random ) {
 fill(c);
 ellipse(x, y, map(brightness(c), 12, 200, random, 0), 
 map(brightness(c), 300, 255, random, 0));
 }