Hola! Quiero intentar hacer un sketch en el cual tenga distintos filtros con pixels para la camara, pero quisiera que estos aparezcan aleatoriamente cada vez que presiono “C”, el problema es que no se como simplificar este código. De momento tengo estos filtros como objetos y no como hacer un arreglo con todos estos objetos porque con el tiempo añadiré mas.
import processing.video.*;
ell[] ellipses;
pt[] puntos;
Capture cam;
void setup(){
size(640,480);
cam= new Capture(this,640,480);
cam.start();
puntos=new pt[1000];
for(int i =0; i<puntos.length;i++){
puntos[i]=new pt();
}
ellipses = new ell [1000];
for(int i = 0; i<ellipses.length;i++){
ellipses[i]=new ell();
}
background(0);
}
void captureEvent(Capture cam){
if(key=='c'){
cam.read();
}
}
void draw(){
//for(int i = 0;i<ellipses.length;i++){
// ellipses[i].display();
// ellipses[i].move();
//}
for(int i = 0;i<puntos.length;i++){
puntos[i].disp();
}
fill(255);
text("Press C to start",20,20);
}
class ell{
float x,y,vx,vy;
ell(){
x= width/2;
y=height/2;
float a= random(TWO_PI);
float speed=random(1,2);
vx = cos(a)*speed;
vy = sin(a)*speed;
}
void display(){
noStroke();
color c= cam.get(int(x),int(y));
fill(c,25);
ellipse(x,y,12,12);
}
void move(){
x=x+vx;
y=y+vy;
if(y<0){
y=height;
}
if(y > height){
y=0;
}
if(x<0){
x=width;
}
if(x>width){
x=0;
}
}
}
class pt{
float pointillize=50;
pt(){
}
void disp(){
int x = int(random(cam.width));
int y = int(random(cam.height));
int loc = x + y*cam.width;
loadPixels();
float r = red(cam.pixels[loc]);
float g = green(cam.pixels[loc]);
float b = blue(cam.pixels[loc]);
noStroke();
fill(r,g,b,100);
ellipse(x,y,pointillize,pointillize);
}
}
este es el codigo que tengo de momento.
Gracias de antemano.