Segunda clase manejando un poco de Processing
- Matías García
- 15 oct 2020
- 2 Min. de lectura
En primer instancia, se nos plantea realizar un ejercicio, basado en este enlace:
A medida que vamos dando click en nuestra pantalla, se va trazando una línea recta de color rojo, desde el punto A al punto B.
Código:
int xinicio =0;
int yinicio =0;
void setup(){
size(600, 600);
background(255);
}
void draw(){}
void mousePressed(){
stroke(255, 0, 0);
line(xinicio, yinicio, pmouseX, pmouseY);
xinicio= mouseX;
yinicio= mouseY;
}
void keyPressed(){
if (keyPressed) {
if (key == 'f' || key == 'F' ){
background(255);
}
}
}

En un segundo ejercicio realizado, bastante difícil personalmente. Generamos un canva con circulos de colores y al pasar el mouse por la pantalla, estos se van a comportar de una manera particular. En este código empleado, se van a ir moviendo todos, pero los circulos que estén próximos al cursor del mouse, se van a juntar bastante entre ellos.
Código:
float angle = 10;
int num0fXTiles =10;
int num0fYTiles =10;
int spacingX;
int spacingY;
int startingX;
int startingY;
void setup(){
size(500, 500);
spacingX= width/num0fXTiles;
spacingY= height/num0fYTiles;
startingX= spacingX/2;
startingY= spacingY/2;
noStroke();
rectMode(CENTER);
fill(0);
}
void draw(){
background(255);
for (int x=startingX; x<width; x=x+spacingX)
{
for (int y=startingY; y<height; y=y+spacingY)
{
int locX = x;
int locY = y;
pushMatrix();
float angle= atan2(mouseY-locY, mouseX-locX) + radians(160);
translate(locX, locY);
rotate(angle);
float d = dist(mouseX, mouseY, locX, locY);
float c = map(d, 0, width, 0, 1);
fill(lerpColor(color(255,0,0), color(0,0,255), c));
ellipse(-40, 0, 30, 30);
popMatrix();
}
}
}

Por último, realizamos un ejercicio, en el cual alojamos una imagen cualquiera dentro de nuestro programa, y le aplicamos filtros tal como lo hace Instagram. Estos filtros que el programa va a aplicar, van de la mano con lo que nosotros le indiquemos al código.
Código:
PImage img, img2;
void setup() {
size(1200,400);
//Carga la imagen y los pixeles
img = loadImage("spiderman.jpg");
img.loadPixels();
for(int i=0; i<img.pixels.length; i++) {
color c=img.pixels[i];
img.pixels[i] = color(red(c)+101, green(c)-32, blue(c)-51);
}
img.updatePixels();
img2 = loadImage("spiderman.jpg");
img2.filter(GRAY);
}
void draw(){
image(img,0,0);
image(img2,width/2,0);
}

Kommentarer