float pX[], pY[]; float dirX[], dirY[]; void setup() { size(200,200); int numPs = 3; pX = new float[numPs]; pY = new float[numPs]; dirX = new float[numPs]; dirY = new float[numPs]; for (int i=0; i 1) {pX[i]=1; dirX[i] = -abs(dirX[i]);} if (pY[i] > 1) {pY[i]=1; dirY[i] = -abs(dirY[i]);} } float w = (float) width; float h = (float) height; float cX, cY, dist2; float energy; for (float y=0; y0) { dX /= l*200; dY /= l*200; } dirX[i] += dX; dirY[i] += dY; } float l = sqrt(dirX[i]*dirX[i]+dirY[i]*dirY[i]); if (l>0.02) { dirX[i] *= 0.95; dirY[i] *= 0.95; } set((int) (pX[i]*width), (int) (pY[i]*height), 0xFFFF0000); } }