Francisco Cataldo: Pincel L

De Casiopea
Pincel en L: Lobo Ahullador
TítuloPincel en L: Lobo Ahullador
Tipo de ProyectoProyecto de Curso
Palabras Clavetarea 8, imagen escrita 2012
Período2012-
AsignaturaTaller Inicial 1ª y 2ª Etapa,
Del CursoImagen Escrita 2012,
CarrerasArquitectura
Alumno(s)Francisco Cataldo
ProfesorHerbert Spencer
PDFArchivo:Lobitos.pdf

Zip con foto para el programa y los códigos de Processing

/*Tarea 8 Imagen Escrita: Construir un pincel y formar imagen con forma del pincel. 
El pincel tiene forma de L, de lobo, y la foto es un lobo que ahulla.
Basado en el código otorgado por el profesor Herbert Spencer */

import processing.pdf.*;

PImage wolves;  // la foto: un lobo ahullando
PFont font;      // la fuente tipográfica
String[] code;   // el texto del código

/*Conversión de pixeles a puntos tipográficos
 
 1 pt = 0.0352778 cm
 1 cm = 28.346438837 pt
 */

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

void setup() {

  wolves = loadImage("wolves.jpg");   // se carga y se construye la imagen del lobo ahullante.
  size(609, 765, PDF, "lobitos.pdf");  // tamaño carta

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

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

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

  font = createFont("arial", 8); // construyo la tipografía a partir de una fuente de sistema
  textFont(font, 10);
  code = loadStrings("pincel.pde"); // cargo el código "trazo" (el pincel)
}




void draw() {

  float spacer = 6;

  // muestreo regular desde la foto
  for (int y = 0; y < wolves.height; y += spacer) {
    for (int x = 0; x < wolves.width; x += spacer) {

      // se saca el color!
      float plotX = map(x, 5, wolves.width, margenIzquierda, width-margenDerecha);
      float plotY = map(y, 5, wolves.height, margenArriba, margenArriba + (wolves.height * escala));
      color c = wolves.get(x, y);


      pincel(plotX, plotY, c, spacer);
    }
  }
  printCode();
  println("Nació chocapic!..digo el PDF");
  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 + wolves.height * escala + interlinea);
    interlinea += 10;
  }
}
/***************************************      pincel       ****************************************/
/* Código del pincel */

void pincel(float x, float y, color c, float amp) {
  fill(c);//pinta
  rect(x, y, map(hue(c), 0, 153, amp, 1), 10); 
  ellipse(x, y, map(hue(c), 0, 220, amp, 2), 7);//croma

  ellipse(x, y, map(brightness(c), 0, 60, 1, 5), 10);
  rect(x, y, map(brightness(c), 0, 60, amp, 5), 7);//brillos

  rect(x, y, map(saturation(c), 0, 255, amp, 2), 4);
  ellipse(x, y, map(saturation(c), 0, 200, amp, 0), 8);//saturación del color

  map(brightness(c), 0, 60, amp, 5);
  map(saturation(c), 0, 255, amp, 2);
  map(hue(c), 0, 255, amp, 0);
}
/*el pincel es como una L de lobo,formada con círculos y cuadrados mezclados*/