Andrea Haddad: cuadro puntillista

De Casiopea

Archivo:Oso.pdf


TítuloCuadro Oso Puntillista
Tipo de ProyectoProyecto de Curso
Palabras Clavetarea 9
Período2012-
AsignaturaImagen Escrita 2012,
Del CursoTaller Inicial 1ª y 2ª Etapa,
CarrerasArquitectura
Alumno(s)Andrea Haddad
ProfesorHerbert Spencer
<nowiki>


import processing.pdf.*;

PImage oso; // la foto: el oso de peluche
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() {

oso = loadImage("oso.jpg"); // se carga la imagen, se "construye" el objeto PImage oso
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)oso.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 < oso.height; y += spacer) {
for (int x = 0; x < oso.width; x += spacer) {

// obtengo el color
float plotX = map(x, 0, oso.width, margenIzquierda, width-margenDerecha);
float plotY = map(y, 0, oso.height, margenArriba, margenArriba + (oso.height * escala));
color c = oso.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 + oso.height * escala + interlinea);
interlinea += 15;
}
}




/***************************TRAZO******************************/

/* Trazo Puntillismo del oso */ 

void trazo(float x, float y, color c, float amp) {
fill(c);
ellipse(x+random(2,7), y+random(4,6), random (1,5), random(3,8)); 
/*Se modifican las coordenadas de x e y, y también varían los tamaños de los puntos de la imagen, creando un efecto de cuadro puntillista */
}



<nowiki/pre>