Mandril tarea 8 Tomás Valladares Vergara

De Casiopea
tarea 8 tomas valladares


Títulotarea 8 tomas valladares
Tipo de ProyectoProyecto de Taller
Palabras Clavetarea 8
AsignaturaImagen Escrita 2012,
Del CursoImagen Escrita 2012,
CarrerasArquitectura
Alumno(s)Tomás Valladares Vergara
ProfesorHerbert Spencer

La creación del trazo se establece con el uso de una forma básica creada con vertex, para luego ser ubicada en los puntos x,y, mediante translate. Cada forma, se rellena con el color muestreado, pero con un poco más de saturación y brillo.También se ubican pequeños triángulos, con relleno un poco desplazado en el valor de croma (hue).


Descargar el archivo: Medio:Tomasvalladares tarea8.rar


/*

 Imagen Escrita 2012: Construcción de un trazo (algoritmo pictórico de la luz y el color) 

*/
//import processing.pdf.*;
PImage mono;  // 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 = 70; 
float margenArriba  = 40;
float margenDerecha = 100;
float margenAbajo   = 20;
float escala;

void setup() {
  colorMode(HSB,100);// declaro nuevo modo de color hsb
  mono = loadImage("monito.jpg");   // se carga la imagen, se "construye" el objeto PImage mono
  size(609, 765);//,PDF,"mandril.pdf");  // tamaño carta
  smooth();

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

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

  noStroke();
  noLoop(); 
  background(0,1,99);

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

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



void draw() {

  float spacer = 14;  // este valor debe variar en relacion al tamaño y la cantidad de pixeles de la foto 

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

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


      trazo(plotX, plotY, c, spacer);
     
    }
  }
 //printCode();

// println("----->PDF done!");
 //exit();
save("miau.jpg");
}

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 + mono.height * escala + interlinea);
    interlinea += 15;
  }
}








/*TRAZO----------------------------------------------------*/



/* Trazo Pictórico tomás valladares*/

void trazo(float x, float y, color c, float amp) {
  float r=red(c);       // obtengo valores en los 3 colores rgb
  float v=green(c);
  float a=blue(c);

  float h = hue(c);       // obtento los valores HSB para poder crear variaciones de relleno 
  float s= saturation(c);
  float b = brightness(c);

  fill(h+30, s, b);            // construyo triangulos con cierta variacion de color
  triangle(x, y, x+2, y+4, x-2, y+4);    

  pushMatrix();   //empujo la matriz para

  translate(x, y);
  scale(map((r+v+a)/3, 0, 255, 0.50, 1.00)); // mapeo un promedio de color rgb, y luego eso lo escalo 
  // entre el 50% (0.50)y el 100% (1.00) de la forma
  forma(h, s+5, b+10);
  
  popMatrix();
}
void forma(float h, float s, float b) {

  fill(h, s, b);
  noStroke();
  beginShape();
  vertex(2*10, 2*10);
  vertex(1*10, 3*10);
  vertex(0.5*10, 4*10);
  vertex(1.5*10, 5*10 );
  vertex(2.5*10, 4.5*10);
  vertex(3*10, 3*10);
  endShape(CLOSE);
}