Juan Francisco Rojas: Pincel Impresionista
De Casiopea
Título | Juan Francisco Rojas: Pincel Impresionista |
---|---|
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) | Juan Francisco Rojas |
Profesor | Herbert Spencer |
- La tarea 8 consistía en la creación de un pincel construyendo un algoritmo con estilo "impresionista" y luego interpretarlo en una imagen. Mi tarea consistió en la creacion de un pincel que dejaba una linea con inclinación random.
- Decidí hacer la prueba de mi pincel con varias imagenes por lo que se puede probar con varias imagenes en la tarea.
Descargar el archivo: Medio:Juan Francisco Rojas Tarea 8.rar
import processing.pdf.*; PImage imagen; PFont font; String[] code; /* Nombres de imagenes a poner: -Girasoles.jpg -Noche_Estrellada.jpg -imagen.jpg -Philip_J._Fry.png -Rostro.jpg -van_gogh_1.jpg -van_gogh_3.jpg -Vincent van Gogh650.jpg */ float mI = 30; // Margen Izquierda float mAr = 30; // Margen Arriba float mD = 40; // Margen Derecha float mAb = 30; // Margen Abajo float escala; void setup() { imagen = loadImage("Noche_Estrellada.jpg"); size(609, 765, PDF, "tarea_8.pdf"); // tamaño carta float ancho = width - (mI + mD); escala = ancho/imagen.width; noLoop(); background(255); smooth(); font = createFont("Courier", 15, true); textFont(font, 15); code = loadStrings("trazo.pde"); // cargo el código "trazo" (el pincel) } void draw() { float spacer = 10; for (int y = 0; y < imagen.height; y += spacer) { for (int x = 0; x < imagen.width; x += spacer) { // obtengo el color float plotX = map(x, 0, imagen.width, mI, width-mD); float plotY = map(y, 0, imagen.height, mAr, mAr + (imagen.height * escala)); color c = imagen.get(x, y); trazo(plotX, plotY, c, spacer); } } printCode(); texto(); println("Listo. Presione Ctrl + K para ver el archivo pdf"); exit(); } void printCode() { fill(#707171); // color de la letra 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/16, height/2 + 110 + interlinea); interlinea += 15; } } void texto() { fill(#000000); text("Juan Francisco Rojas", width - mD*5, height - mAb - 20); text("1 Año Arquitectura", width - mD*5, height - mAb); } void trazo(float x, float y, color c, float amp) { int trazos = round(map(brightness(c), 0, 255, 20, 0)); pushMatrix(); { translate(x, y); stroke(c); // color de la imagen pasada al trazo rotate(random(0,2*PI)); // inclinación random strokeWeight(10); // grosor de la línea line(-amp, 0, amp, 0); // trazo línea } popMatrix(); }