Macarena Álamos: Proyectos de Presentación al Lenguaje Abierto
Título | |
---|---|
Período | 2011-2011 |
Asignatura | Presentación al Lenguaje Abierto, |
Del Curso | Presentación al Lenguaje Abierto, |
Carreras | Diseño Gráfico"Diseño Gráfico" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property., Diseño Industrial"Diseño Industrial" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property. |
Alumno(s) | Macarena Álamos R |
Profesor | Herbert Spencer, Marcelo Araya |
Autoretrato generado con código de processing
Código
/** Pintor Impresionista, que inventa su pincel que recrea su mirada Este sketch genera un PDF mientras se visualiza en pantalla. Herbert */ import processing.pdf.*; PImage paisaje; /* 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 = 85; // 3 cm float margenArriba = 85; float margenDerecha = 85; float escala; boolean pinta; int x, y; // coordenadas de muestreo dentro de la imagen void setup() { paisaje = loadImage("maca3.jpg"); // se carga la imagen original (bitmap) size(765, 765); // 27 x 27 cm. smooth(); beginRecord(PDF, "Macarena"+day()+hour()+minute()+".pdf"); // tambi´n grabe un PDF float ancho = width - (margenIzquierda + margenDerecha); escala = ancho / (float)paisaje.width; // cuociente entre el ancho de impresión y el tamaño de la imagen strokeCap(SQUARE); background(255); // fondo blanco x = y = 0; // reseteo las coordenadas del muestreo, esquina superior izquierda pinta = true; } void draw() { float spacer = 4; // espaciador del muestreo, no va cada 1 pixel, sino que cada "spacer" pixeles // plotX y plotY corresponden a los valores mapeados para cada pincelada. // Este mapeo traslada el valor X dentro de la imagen al valor X en la hoja // de papel, en el lugar exacto donde queremos que se imprima, considerando los márgenes float plotX = map(x, 0, paisaje.width, margenIzquierda, width-margenDerecha); float plotY = map(y, 0, paisaje.height, margenArriba, margenArriba + (paisaje.height * escala)); color c = paisaje.get(x,y); if(pinta) pincel(plotX, plotY, c, spacer); if (x < paisaje.width - spacer) { x+= spacer; } else if(y < paisaje.height) { x = 0; y += spacer; } if (y > paisaje.height) { println("listo!"); endRecord(); pinta = false; exit(); } } void pincel(float x, float y, color c, float amp) { int cuadros = (int)map(brightness(c), 0, 255, 20, 0); for (int i = 0; i < cuadros; i++) { pushMatrix(); { translate(x + 10, y + 10); // quito ruido a la grilla noStroke(); fill(c, 100); // cada cuadrado mantiene el color con cierta transparencia quad (1, 1, 3, 1, 3, 3, 1, 3); } popMatrix(); } }
Resultado
Dibujo de Círculo con Plotter Humano
Imágenes
- Construccióndelcirculo1.JPG
- Construccióndelcirculo3.JPG
- Construccióndelcirculo4.JPG
- Construccióndelcirculo5.JPG
Propuesta de Brazo para dibujar Círculos
La propuesta para este aparato que dibuja círculos está pensado sobre el gesto de extender y contraer el brazo en un solo eje, de la manera que en un desplazamiento de la mano hacia adelante y atrás, se puede mover este objeto que lleva en uno de sus extremos un lápiz
En este video falta una parte del aparato, el que en la foto es empujado por mi mano, ya que de esa manera se ve mas claro el movimiento de ir y venir de la mano
Propuesta de Juego con Pliegues en el Papel
La idea de esta pieza de papel plegada es que a hacer calzar los calados se puedan dibujar letras que nombran la misma acción de CALZAR.
Despliegue en sí no tiene, ya que es un juego que no tiene inicio ni fin determinados.
Coreografía de Movimiento en Processing
Movimiento de la Hospedería de los Signos
void setup () { size (200, 450); background(255); } void draw() { noStroke(); fill (#999999); //primera fila------------------------------------- rect (0, 0, 50,50); if (mouseY > 50) { mouseY=50; } rect (50, mouseY, 50,50); rect (100, mouseY *2, 50,50); //segunda fila------------------------------------ rect (0,50,50,50); rect (50, mouseY+50,50,50); rect (100, (mouseY*2)+50,50,50); //tercera fila-------------- rect (0,100, 50,50); rect (50, mouseY+100,50,50); rect (100, (mouseY*2)+100,50,50); //cuarta fila-------------- rect (0,150, 50,50); rect (50, mouseY+150,50,50); rect (100, mouseY+150,50,50); //cuarta fila b----------- rect (100, mouseY+150,50,50); rect (50, (mouseY*2)+150,50,50); rect (mouseY+100,150, 50,50); //quitna fila----------------------- rect (50,200, 50,50); rect (100, mouseY+200,50,50); //quinta fila b--------------- rect (100, mouseY+200,50,50); rect (50, (mouseY*2)+200,50,50); rect (mouseY +100,200, 50,50); rect (0, (-mouseY*2)+200,50,50); //sexta fila------------------ rect (0,250, 50,50); rect (50,mouseY+250, 50,50); rect (100, mouseY+250,50,50); //septima fila--------------- rect (0,300, 50,50); rect (0, (mouseY*2)+300,50,50); rect (50,mouseY + 300, 50,50); rect (100,-mouseY +300, 50,50); fill (255, 50); rect(0,0,width, height); }
Segunda Propuesta con dos ejes de Movimiento
void setup() { size (200, 500); noStroke (); background(255); } void draw() { //Cuadro Blanco----------------------------------------------------------- fill (255); rect(25, -mouseY+100, 50,50); if (mouseY>50) { mouseY=50; } //Fila Superior Detras---------------------------------------------------- fill (0); rect(25, -mouseY+75, 50,50); rect(75, -mouseY+75, 50,50); rect(125, 75,50,50); //Fila Superior Frente---------------------------------------------------- fill (#ff6600); rect(25, mouseY+75, 50,50); rect(75, 75, 50,50); rect(125, mouseY+75,50,50); //Fila Central Detras---------------------------------------------------- fill (#ff6600); rect(25, -mouseY+225, 50,50); rect(75, (-mouseY*2)+225, 50,50); rect(125, 225,50,50); //Fila Central Frente---------------------------------------------------- fill (0); rect(25, mouseY+225, 50,50); rect(75, -mouseY+225, 50,50); rect(-mouseY + 125, 225,50,50); //Fila Inferior Detras---------------------------------------------------- fill (0); rect(25, -mouseY+375, 50,50); rect(75, 375, 50,50); rect(125, mouseY +375,50,50); //Fila Inferior Frente---------------------------------------------------- fill (#ff6600); rect(25, mouseY+375, 50,50); rect(-mouseY+75, 375, 50,50); rect(125,(-mouseY*2)+375,50,50); //Cuadro Transparente------------------------------------------------------ fill (255, 50); rect(0,0,width, height); }
Tercera Propuesta con un eje de Movimiento
void setup() { size (200, 500); noStroke (); background(255); } void draw() { //Cuadro Blanco----------------------------------------------------------- fill (255); rect(25, -mouseY+100, 50,50); if (mouseY>50) { mouseY=50; } //Fila Superior Detras---------------------------------------------------- fill (0); rect(25, -mouseY+75, 50,50); rect(75, mouseY+75, 50,50); rect(125, 75,50,50); //Fila Superior Frente---------------------------------------------------- fill (#ff6600); rect(25, mouseY+75, 50,50); rect(75, 75, 50,50); rect(125, (mouseY*2)+75,50,50); //Fila Central Detras---------------------------------------------------- fill (#ff6600); rect(25, -mouseY+225, 50,50); rect(75, (mouseY*2)+225, 50,50); rect(125, 225,50,50); //Fila Central Frente---------------------------------------------------- fill (0); rect(25, mouseY+225, 50,50); rect(75, -mouseY+225, 50,50); rect( 125, (mouseY*2) + 225,50,50); //Fila Inferior Detras---------------------------------------------------- fill (0); rect(25, -mouseY+375, 50,50); rect(75, 375, 50,50); rect(125, mouseY +375,50,50); //Fila Inferior Frente---------------------------------------------------- fill (#ff6600); rect(25,mouseY + 375, 50,50); rect(75, 375, 50,50); rect(125,(-mouseY*2)+375,50,50); //Cuadro Transparente------------------------------------------------------ fill (255, 50); rect(0,0,width, height); }