// x1,y1 -> blauer kreis // x,y -> roter kreisI // x2,y2 -> oranger kreis // a,b,dist beziehen sich auf roten kreis zu blauem kreis // a2,b2,dist2 beziehen sich auf orangem kreis zu blauem kreis // a3,b3,dist3 beziehen sich auf roten kreis zu orangem kreis float x,y,x1,y1,x2,y2; float a,b,a2,b2,a3,b3; float dist,dist2,dist3; void setup() { size(300,300); ellipseMode(CENTER_DIAMETER); x=random(width); // roter kreis y=random(height); x1=150; // blauer kreis y1=150; } void loop() { background(200,200,200); a=x1-x; b=y1-y; a2=x1-x2; b2=y1-y2; a3=x2-x; b3=y2-y; dist=sqrt(a*a+b*b); dist2=sqrt(a2*a2+b2*b2); dist3=sqrt(a3*a3+b3*b3); // blauer haut ab if(dist<=50) { // vor rot x1+=a/30; y1+=b/30; } else if(dist2<=50) { // vor orange x1+=a2/30; y1+=b2/30; } // oranger haut ab if(dist3<=50) { // vor rot x2+=a3/10; y2+=b3/10; } // straight to the edge!! if(x1<0) { //links x1=width/2; y1=height/2; } if(x1>width) { //rechts x1=width/2; y1=height/2; } if(y1<0) { //oben x1=width/2; y1=height/2; } if(y1>height) { //unten x1=width/2; y1=height/2; } noStroke(); // blauer kreis fill(0,0,255); ellipse(x1,y1, 10,10); // roter kreis fill(255,0,0); ellipse(x,y, 10,10); x+=a/30; y+=b/30; // oranger kreis fill(250,90,0); ellipse(x2,y2, 10,10); x2+=a2/100; y2+=b2/100; }