Mandril tarea 8 Tomás Valladares Vergara
De Casiopea
Título | tarea 8 tomas valladares |
---|---|
Tipo de Proyecto | Proyecto de Taller |
Palabras Clave | tarea 8 |
Asignatura | Imagen Escrita 2012, |
Del Curso | Imagen Escrita 2012, |
Carreras | Arquitectura |
Alumno(s) | Tomás Valladares Vergara |
Profesor | Herbert 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); }