Andrea Haddad: Paisaje Trazo Pictórico
| Título | Volcán con trazo pictórico |
|---|---|
| Tipo de Proyecto | Proyecto de Curso |
| Palabras Clave | tarea 8 |
| Período | 2012- |
| Asignatura | Taller Inicial 1ª y 2ª Etapa, |
| Del Curso | Imagen Escrita 2012, |
| Carreras | Arquitectura |
| Alumno(s) | Andrea Haddad |
| Profesor | Herbert Spencer |
/*
Imagen Escrita 2012: Construcción de un trazo (algoritmo pictórico de la luz y el color)
*/
import processing.pdf.*;
PImage volcan; // 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 = 30;
float margenArriba = 20;
float margenDerecha = 20;
float margenAbajo = 20;
float escala;
void setup() {
volcan = loadImage("volcan.jpg"); // se carga la imagen, se "construye" el objeto PImage volcan
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)volcan.width;
noStroke();
noLoop();
background(255);
font = createFont("Courier", 8); // construyo la tipografía a partir de una fuente de sistema
textFont(font, 8);
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 < volcan.height; y += spacer) {
for (int x = 0; x < volcan.width; x += spacer) {
// obtengo el color
float plotX = map(x, 0, volcan.width, margenIzquierda, width-margenDerecha);
float plotY = map(y, 0, volcan.height, margenArriba, margenArriba + (volcan.height * escala));
color c = volcan.get(x, y);
trazo(plotX, plotY, c, spacer);
}
}
printCode();
println("----->PDF done!");
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 + volcan.height * escala + interlinea);
interlinea += 15;
}
}
/***************************** Trazo *****************************/
/* Trazo Pincelado del volcán, el bosque y el mar */
void trazo(float x, float y, color c, float random) {
fill(c);
// trazo elemental
ellipse(x, y, map(brightness(c), 60, 200, random, 14),
map(brightness(c), 313, 355, random, 0));
}