Holaa, necesito ayuda para un trabajo de la facultad. Consiste en generar con el movimiento y velocidad del mouse, diferentes obras de arte abstractas, en mi caso seleccione unas que contienen diferentes cuadrados cada uno en una posicion especifica. La cuestion es que nose como al mover el mouse se vayan generando los cuadrados. A medida que el mouse sube su velocidad deberian aparecer los cuadrados con colores mas calidos y por el contrario los colores mas frios y cada uno en sus posiciones especificas (que es lo que mas complica). Paso el codigo en que ya eh avanzado. Ojala alguien me pueda ayudar gracias!!
class prototipo-----------------------------------------------------------------------------------------------
Direccion_Velocidad miVelocidadYDireccion; //declaro objeto
ArrayList <Caminante> caminantes; //declaro objeto ArrayList
void settings() {
size (600,600);
//Inicializo el objeto
miVelocidadYDireccion = new Direccion_Velocidad();
caminantes = new ArrayList<Caminante>();
for (int i=0; i<random(0,5); i++)
caminantes.add(new Caminante());
}
void draw(){
miVelocidadYDireccion.calcularTodo(mouseX,mouseY);
noStroke();
for (Caminante c:caminantes){
c.dibujar();
if(miVelocidadYDireccion.velocidad()>10)
c.mover();
}
}
class caminante----------------------------------------------------------------------------------------------------
class Caminante {
//Atributos
float x1,y1;
float x2,y2;
float dir;
float vel;
float t;
//Constructor
Caminante() {
x1 = random(width);
y1 = random(height);
x2 = random(width);
y2= random(height);
vel =15;
t = random(50,100);
dir = random(width,height) ;
}
//lo que se va a dibujar dependiendo la direccion y velocidad
void dibujar() {
fill(miVelocidadYDireccion.velocidad()); /*cuanto menos velocidad tiene el mouse, se dibujan cuadrados con colores oscuros
cuanto mas velocidad tiene el mouse, se dibujan cuadrados con colores
mas claros*/
rect(x1, y1, t, t);
}
//accion de cuando moves el mousse
void mover() {
x1 = x2+random(0,600); //DISTRIBUCION Y MOVIMIENTO DE LOS CUADRADOS
y1 = y2+random(0,600); //DISTRIBUCION Y MOVIMIENTO DE LOS CUADRADOS
//espacio toroidal
x1=(x1>width?x1-width:x1);
x1=(x1<0?x1+width:x1);
y1=(y1>height?y1-height:y1);
y1=(y1<0?+height:y1);
}
}
class Direccion_y_velocidad--------------------------------------------------------------------------------------
class Direccion_Velocidad {
float posX;
float posY;
float PosPrevX;
float PosPrevY;
float miDireccionX;
float miDireccionY;
float miDireccionPolar;
float vel;
Direccion_Velocidad () {
this.posX=50;
this.posY=600;
vel=50;
miDireccionX=600;
miDireccionY=600;
}
void calcularTodo (float mi_X, float mi_Y) {
PosPrevX=posX;
PosPrevY=posY;
posX=mi_X;
posY=mi_Y;
miDireccionX = posX-PosPrevX;
miDireccionY = posY-PosPrevY;
miDireccionPolar = degrees(atan2( posY-PosPrevY, posX-PosPrevX ));
vel = dist (posX, posY, PosPrevX, PosPrevY);
}
//metodos que devuelven valores o algo
float velocidad() {
return vel;
}
float direccionX () {
return miDireccionX;
}
float direccionY () {
return miDireccionY;
}
float direccionPolar () {
return miDireccionPolar;
}
}