////////////INNER CIRCLES & KEY PRESSED "R" TO RESET/////////////// ////////////Work on adding velocity from v2.0////////////////////// ////////////////FOR WEB VISUALS ONLY/////////////////////////////// import promidi.*; import maxlink.*; float e1, f1; float rSum; int numCirc = 30; BouncyCircle [] circles; void setup() { size(900,600,P3D); loadPixels(); stroke(0); ellipseMode(CENTER); circles = new BouncyCircle[numCirc]; for (int i=0; i width-r) { // keep ellipse against boundary x = width-r; dx *= -1; } else if (x < r) { // keep ellipse against boundary x = r; dx *= -1; } else if (y > height-r) { // keep ellipse against boundary y = height-r; dy *= -1; } else if (y < r) { // keep ellipse against boundary y = r; dy *= -1; } /////////////object collision/////////////////// e1 = mouseX; f1 = mouseY; float g1 = 30; float h = dist(x, y, mouseX, mouseY); float rSum = r+g1; if (h < rSum){ dx = (x-mouseX)/h; dy = (y-mouseY)/h; // keep ellipses from overlapping with user-controlled obj x = mouseX+(rSum)*dx; y = mouseY+(rSum)*dy; //test for zero speed and reset zero objects at collision if (dxold == 0.0|dxold <= 1.0){ dx = (random(-12.0,12.0)); } else { dx = dxold; } if (dyold == 0.0|dyold <= 1.0){ dy = (random(-12.0,12.0)); } else { dy = dyold; } } } }