// import processing.opengl.*; int sx = 800; int sy = 600; int cantx = 20; int canty = 14; ArrayList oj; // oivamente de ojebtos float k2mult = 0; void setup() { size (sx,sy); framerate(15); smooth(); background(0); oj = new ArrayList(cantx*canty); // creo los ojebtos for (int i=-5; i 0.001){ calcNextPos(); } lastTime = thisTime; } //--------------------- void calcNextPos() { float xp = 10000; float yp = 10000; if ((abs(mouseX) < 1000) && (abs(mouseY) < 1000)) { xp = mouseX-sx/2; yp = mouseY-sy/2; } x0 = (k2mult+1)*A*lx1 + (k2mult+1)*B*lx2 - C*x1 - D*x2; y0 = (k2mult+1)*A*ly1 + (k2mult+1)*B*ly2 - C*y1 - D*y2; //dejo preparados los proximos valores x = x0+xo; y = y0+yo; x2 = x1; y2 = y1; x1 = x0; y1 = y0; lx2 = lx1; ly2 = ly1; d = sqrt( pow((xp-x),2) + pow((yp-y),2) ); l = 1 / (40 + d ); lx1 = (xp-x) * pow(l,2) ; ly1 = (yp-y) * pow(l,2) ; z=10*dist(x,y,xo,yo); r=0; //r+z/1000; } //-------------- void paint() { fill(cr+10*abs(x2-x1)+10*abs(y2-y1),cr+2*abs(x2)+2*abs(y2),cb,180); noStroke(); rect(x+sx/2,y+sy/2,sx/cantx,sy/canty); } //------------- /* void paintGl() { fill(cr+10*abs(x2-x1)+10*abs(y2-y1),cr+2*abs(x2)+2*abs(y2),cb,180); noStroke(); //rect(x+sx/2,y+sy/2,sx/cantx,sy/canty); pushMatrix(); rotateX(0.15); rotateY(0); translate(x+sx/2, y+sy/2, -z); pushMatrix(); rotateY(r); pushMatrix(); beginShape(POLYGON); vertex(-sx/cantx/2,-sy/canty/2); vertex(sx/cantx/2, -sy/canty/2); vertex(sx/cantx/2, sy/canty/2); vertex(-sx/cantx/2, sy/canty/2); endShape(); popMatrix(); popMatrix(); popMatrix(); } */ }