//written by Daniel Sauter //updated by AnnMarie Cernoch //2007 //3 strips of pixbugs int num = 100; // number of objects int[] posX = new int[num]; int[] posY = new int[num]; int[] speedX = new int[num]; int[] speedY = new int[num]; boolean col; int k = 0; int i=1; int value=0; void setup() { size(700, 700, P3D); noStroke(); for (int i = 0; i < num; i++) { // shuffle initial positions and direction speedX[i] = int(random(1)+1); speedY[i] = int(random(.5)+1); posX[i] = int(width/2); posY[i] = int(random(height-30))+10; } } void draw() { background(0); translate(width/2,height/2, -700); rotate(radians(i++)); //main rotate over all matriese pushMatrix(); for (int i = 0; i < num; i++) { posX[i]+=speedX[i]; posY[i]+=speedY[i]; for (int j = 0; j < num; j++) { if (dist(posX[i], posY[i], posX[j], posY[j]) < 20 && j != i) { speedX[i]=-speedX[i]; speedX[j]=-speedX[j]; } } if (posX[i] > width/2 || posX[i] < width/2) { speedX[i]=-speedX[i]; } if (posY[i] > height || posY[i] < 0) {//|| posY[i] < 0 // posY[i] = 0; speedY[i]=-speedY[i]; } fill(255,0,0); ellipse(posX[i], posY[i],2,2); } popMatrix(); //--------------------------------------------------------------------------- translate(150,0); pushMatrix(); for (int i = 0; i < num; i++) { posX[i]+=speedX[i]; posY[i]+=speedY[i]; for (int j = 0; j < num; j++) { if (dist(posX[i], posY[i], posX[j], posY[j]) < 20 && j != i) { speedX[i]=-speedX[i]; speedX[j]=-speedX[j]; } } if (posX[i] > width/2 || posX[i] < width/2) { speedX[i]=-speedX[i]; } if (posY[i] > height || posY[i] < 0) {//|| posY[i] < 0 // posY[i] = 0; speedY[i]=-speedY[i]; } fill(0,255,0); ellipse(posX[i], posY[i], 2,2); } popMatrix(); translate(-290,0); pushMatrix(); for (int i = 0; i < num; i++) { posX[i]+=speedX[i]; posY[i]+=speedY[i]; for (int j = 0; j < num; j++) { if (dist(posX[i], posY[i], posX[j], posY[j]) < 20 && j != i) { speedX[i]=-speedX[i]; speedX[j]=-speedX[j]; } } if (posX[i] > width/2 || posX[i] < width/2) { speedX[i]=-speedX[i]; } if (posY[i] > height || posY[i] < 0) {//|| posY[i] < 0 // posY[i] = 0; speedY[i]=-speedY[i]; } fill(0,0,255); ellipse(posX[i], posY[i], 2,2); } popMatrix(); } void mousePressed() { //rotate(10); // setup(); }