Como realizar este movimiento?

Hola a todos! Soy nuevo en la comunidad y usando Processing, asi que les voy a explicar cual es mi situación.

Estoy buscando generar un efecto en un proyecto que estoy realizando. El movimiento que busco es similar al siguiente:

https://cs.brynmawr.edu/gxk2013/examples/transformations/starfield/

Este es una imagen de mi proyecto:

Lo que busco es que los cuadrados avancen generando así ese efecto de estar “entrando” en ellos, y que no termine, como si fuera un loop.

Espero que puedan ayudarme, muchas gracias!

1 Like

Comienza con un cuadrado en el centro y vas incrementando sus dimensiones. Ahi abajo encontraras una demostracion que he hecho para ti. Ahora tu tarea es manejar mas cuadrados siguiendo el concepto de un tren de cuadrados, excatmanete lo que quieres hacer. Comienza mostrando dos cuadrados, despues tres y mira que modelo surge que puedas seguir.

Nota que el color cambia de acuerdo con la dimension del cuadro. Comienza azul y cuando se have tan grande como el ancho de la pantalla, se vuelve mas rojo. Hay otras strategias para este efecto como utlizar una mascara. Prefiero que te concentres en la generacion de los cuadrados primero y talvez el efecto que he mostrado ahora con los colores te será suficiente.

Kf

//===========================================================================
// FINAL FIELDS:
final color COLD_COL=color(10,10,250);
final color WARM_COL=color(250,10,10);

//===========================================================================
// GLOBAL VARIABLES:

float cw; //current width
float ch; //current height
color c;

//===========================================================================
// PROCESSING DEFAULT FUNCTIONS:

void settings(){
  size(400,600);
}

void setup(){

  textAlign(CENTER,CENTER);
  rectMode(CENTER);
  
  noFill();  
  strokeWeight(2);  //This controls the width of the square
  
  cw=20; //Init values
  ch=20;
  c=getColor();
}


color getColor(){
  return lerpColor(COLD_COL, WARM_COL,2*cw/width);
}


void draw(){
  background(10);
  translate(width/2,height/2);
  
  stroke(getColor());
  rect(0,0,cw,ch);
  cw+=2;
  ch+=2;
  
  //Check if edge is reached. If so, reset
  if(cw>width){
    cw=20;  //Reset to init values
    ch=20;
  }
  
}
3 Likes

I did a tribute to Vasarely similar : Vasarelo

1 Like

Muchísimas gracias!!

Wow, it’s very good!!