PROCESSING 2: Variables, Imágenes, Funciones y Bucles.

 Hola Bloggeros!!1111111!!!! 👄👀👆 

Aquí os dejamos la segunda parte de nuestro resumen sobre las diferentes funciones de processing. Disfrutar y aprender! 


FICHA 3 : Aprendiendo a usar variables.

- Int x; = para definir una variable, podemos hacer cosas como hacer que un objeto se mueva de lado a lado, que su tamaño aumente o disminuya… esto se consigue añadiendo una nueva formula, x = x+n; por ejemplo. (para que no se vea el rastro, poner en el void draw un background(0); Se pueden poner más de una variable. 

Si queremos que la variable empieza a moverse desde un punto especifico, le sumamos/multiplicamos o restamos/dividimos a la variable de la figura. ellipse (x+10, 10, 10, 10);

- Podemos usar variables con el strokeWeight(); también, por ejemplo. strokeWeight(y);

y=y+1; y con eso se consigue aumentar el grosor de la figura. Para hacer figuras que sean concentricas por ejemplo : rect(x, x, 300-2*x, 300-2*x);


FICHA 4 : Colocando Imágenes.

IMPORTANTE : Para poner una imagen, es necesario irse a Sketch > Añadir archivo > eliges la 

imagen que quieras que se vea en el processing.


- Pimage f; = nombramos la imagen con una variable. Se pone antes de el void setup.

- f=loadImage(“nombre de la imagen.jpg”); = con esto le decimos a la variable que carge esa imagen que previamente hemos colocado en la carpeta data. Se pone dentro del void setup.

- Image (f, n, n, n, n); = la localización de la imagen, si son varias, ponemos al principio la letra

correspondiente a la imagen que queremos poner. Se coloca en el void draw.

- background (f); = convertimos la imagen en el fondo del lienzo, la imagen ocupa toda la pantalla.

En void draw.

- tint(n, n, n); = poner antes de la imagen, consiste en tintar de un color la imagen. Podemos poner otra imagen encima y tintarla de otra forma también. En void draw.

- tint(n, n, n, n); = tintar la imagen, pero con transparencia, como lo que sucede con el fill. Cuanto mayor sea el número, mayor opacidad e viceversa. En void draw.

- copy(n, n, n, n, n, n, n, n); = las cuatro primeras, se centran en copiar la imagen mientras que las ultimas cuatro, en su localización. Void draw.

- save(); = esta función, guardará la imagen que se ve en el momento de correr el programa, para verificarlo, podemos ir a los archivos de processing para verlo.

- filter (); = pone filtros, hay que ponerlo después de colocar la imagen. Hay diferentes tipos :

filter(GRAY); = aplica un filtro gris a la imagen.

• filter(BLUR, n); = aplica un filtro que hace que la imagen se desenfoque.

• filter(POSTERIZE, n); = el numero debe ser entre 2 y 255. Filtro raro.

• filter(INVERT); = invierte los colores de la imagen.


- blend(f, n, n, n, n, n, n, n, n, DIFFERENCE); = parecido al copy, las cuatro primeras son para la parte que queremos recortar y las otras cuatro su localización. El difference sirve para dividir dos imagenes y ponerlas juntas.

- String url = "la dirección de la página web.jpg" = hacer que en el lienzo se cargue una imagen directamente de internet. Algo así :

PImage webImg;

void setup() {

size(432,288);

String url = "https://noticias.uneatlantico.es/wp-content/uploads/2019/05/robotito.jpg";

webImg = loadImage(url, "jpg");

}

void draw() {

background(0);

image(webImg, 0, 0);

}


FICHA 5 : Primer contacto con los bucles. 

Los bucles, son instrucciones que permiten repetir una secuencia de ordenes. 

- for (int i=0; i<10; i=i+1){ = bucle que se repite utilizando una variable, hasta que deja de cumplirse la condición. Esta condición por ejemplo, seguirá de 0 hasta 9, luego se parara. El contrario sería que contara de 10 a 1 : for (i=10; i>0; i=i-1){ . Void draw.

- while (i<=>n){ = bucle que se ejecuta de forma infinita (algo que no pasa en los for, ya que le ponemos una condición que si o si va a alcanzar. En este caso de while, las ordenes no se ejecutaran ni una vez si la condición no se cumple. Void draw. Poner dentro de esta también cuanto se desplazará la variable. 

- do{

} while (i<=>n); = igual que el anterior, la diferencia es que en este caso las ordenes si se ejecutarán una vez, antes de ver si la condición se cumple o no. Void draw. 

Es posible que, sea necesario hacer dos while para reiniciar la x o la y si queremos rellenar el lienzo de circulos por ejemplo : 

int x;

int y;

void setup() {

  x=20;

  y=20;

}

void draw() {

    while(y<=380) {

      while(x<=380){

        point(x,y);

        x=x+20;

      }

      x=20;

      y=y+20;

    }

  }

( aparte :void draw() {
  for(int i=0 ;i<100; i=i+1) {
  rect(x,50*i,50,50);
  }
    x=x+50;
} )

- Normalmente, usamos int  n; para trabajar con los bucles, así quedaría la formula entonces :

void draw() {

  for(int i=n ;i<n; i=i+n) {

  }

    x=x+y;

}

- También puede resultarnos util saber que en el void setup podemos poner el valor de la variable que hemos definido antes :

int x;

int y;

void setup() {

  size(500,400);

  x=0;

  y=1;

}

Para que unos números queden igual : multiplicamos por i su tamaño correspondiente.

FICHA 6 : Creando funciones.

- int tam = int(ramdom(1,100)); = usado para variar algo de una figura, puede ser la localización, el tamaño… lo podremos en la figura de esta forma ellipse(tam,tam,n,n) para que la localización cambie de forma ramdom o ellipse(n, n, tam, tam) para variar el tamaño. 

- pelota(); = lo ponemos en el void setup para definir el void pelota.

- void pelota(int a, int b){ = ponemos unas ordenes que queremos que se cumplan, luego en el void draw ponemos la abreviación pelota(); para que sepa que tiene que hacer esas ordenes. (no tiene porque llamarse pelota, es solo un ejemplo). Para variar el tamaño :

void pelota(int a, int b){

int tam = int(ramdom(1,100));

ellipse(a,b,tam,tam);


}

(parametro a para situar en x la ellipse y la b para situarlo en y) (“int” significa valor entero). 


- int x= int(random(1,width)); y int y = int(random(1,height)); = con esto, hacemos que la pelota cambie de forma aleatoria de lugar por todo el lienzo. Para esto ponemos debajo de estas dos funciones pelota(x, y); y con esto hacemos que todo sea random. Se pone antes que la pelota (x,y); dentro del void draw. 

- fill(random(1,255),random(1,255),random(1,255)); = hacemos que los tres números que determinan el color de la figura sean aleatorios. Void draw. 

- int pelota(int a, int b){ = se usa junto con el return n; (devolvemos un parametro) y junto con el println(n); estos se usan junto con una nueva variable que le ponemos a pelota(); ( algo así como r=pelota(); ) y dentro del println. 


Para hacer una cruz :

 void equis(int a, int b){

  stroke(random(1,100));

  strokeWeight(random(1,50));

  line(a,b,a+100,b+100);

  line(a+100,b,a,b+100);

}

  







































































👊😎

EssterEgg:

int x;

int y;

void setup(){

 size(300,300);

 background(0,255,0);

}

void draw(){

  for(x=0;x<=300;x=x+30){

   for(y=0;y<=300;y=y+30){

   if(x<=100){

      rect(x-25,y,20,20);

 }

  if(x>=100 && x<=200){

    ellipse(x-10,y,20,20);

}

if(x>=200){

   triangle(x-10,y,x+10,y-20,x-10,y-20);

}

 }

}

}



Comentarios