//written by Daniel Sauter //2007 // modified by AnnMarie Cernoch int num = 10; // 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; void avoidSetup() { size(400, 700); 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 avoidDraw() { background(50); 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); //model.draw(); } popMatrix(); //--------------------------------------------------------------------------- /* translate(100,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(255,0,0); ellipse(posX[i], posY[i], 2,2); } popMatrix(); */ } void mousePressed() { setup(); }