(Created page with " == Code C == == Objekt Ball ==")
 
(Code C)
Line 2: Line 2:
 
== Code C ==
 
== Code C ==
  
 +
Ball[] ball = new Ball[15];
 +
int a,b,c; //Abstände der Ebenen
 +
 +
void setup() {
 +
  size(1280,1024);
 +
  //size(1920,1200);
 +
  smooth();
 +
  noStroke();
 +
  colorMode(HSB,360,100,100,100);
 +
 
 +
  a = 500; //700 Größe der ersten Ebene
 +
  b = 400; //600 Größe der zweiten Ebene
 +
  c = 40; //60 Lücke
 +
 
 +
  for (int i=0; i < 5; i++) {
 +
    ball[i] = new Ball();
 +
    //in erster Ebene
 +
    ball[i].x = random(ball[i].g1,a-ball[i].g1);
 +
    ball[i].y = random(ball[i].g2,height-ball[i].g2);
 +
    //Farbe
 +
    ball[i].h = (int)random(360);
 +
  }
 +
 
 +
  for (int i=5; i < 10; i++) {
 +
    ball[i] = new Ball();
 +
    //in zweiter Ebene
 +
    ball[i].x = random(a+c+ball[i].g1,a+c+b-ball[i].g1);
 +
    ball[i].y = random(ball[i].g2,height-ball[i].g2);
 +
    //Farbe
 +
    ball[i].h = (int)random(360);
 +
  }
 +
 
 +
  for (int i=10; i < ball.length; i++) {
 +
    ball[i] = new Ball();
 +
    //in dritter Ebene
 +
    ball[i].x = random(a+c+b+c+ball[i].g1,width-ball[i].g1);
 +
    ball[i].y = random(ball[i].g2,height-ball[i].g2);
 +
    //Farbe
 +
    ball[i].h = (int)random(360);
 +
  }
 +
}
 +
 +
void draw() {
 +
  background(0);
 +
  fill(255);
 +
  rect(a,0,c,height);
 +
  rect(a+c+b,0,c,height);
 +
 
 +
  for (int i=0; i < 15; i++) {
 +
    ball[i].position[0] = ball[i].x-ball[i].g1/2;
 +
    ball[i].position[1] = ball[i].x+ball[i].g1/2;
 +
    ball[i].position[2] = ball[i].y-ball[i].g2/2;
 +
    ball[i].position[3] = ball[i].y+ball[i].g2/2;
 +
  }
 +
 
 +
  for (int i=0; i < 5; i++) {
 +
    //Bewegen
 +
    if (ball[i].angle <= 360) {
 +
      ball[i].angle -= 2;
 +
    }
 +
    if (ball[i].angle <= 0) {
 +
      ball[i].angle = 360;
 +
    }
 +
    //im Bogen
 +
    ball[i].vx = cos(radians(ball[i].angle))*ball[i].g1/6;
 +
    ball[i].vy = sin(radians(ball[i].angle))*ball[i].g2/6;
 +
    ball[i].x = ball[i].x + ball[i].vx;
 +
    ball[i].y = ball[i].y + ball[i].vy;
 +
    //Ballgröße zurücksetzen
 +
    if (ball[i].g1 != 90) {
 +
      ball[i].g1 = 90;
 +
    }
 +
    //Rand oben
 +
    if (ball[i].x <= 0+ball[i].g1/2) {
 +
      ball[i].angle = 60;
 +
    }
 +
    //Rand unten
 +
    if (ball[i].x >= a-ball[i].g1/2) {
 +
      ball[i].angle = 180;
 +
      ball[i].g1 = ball[i].g1-20;
 +
    }
 +
    //links raus
 +
    if (ball[i].y <= 0-ball[i].g2) {
 +
      ball[i].y = height+ball[i].g2/2;
 +
    }
 +
    //rechts raus
 +
    if (ball[i].y >= height+ball[i].g2) {
 +
      ball[i].y = 0-ball[i].g2/2;
 +
    }
 +
    ball[i].maleBall();
 +
   
 +
    //Bälle stoßen aneinander
 +
    for (int j=i+1; j < 5; j++) {
 +
      if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[3] >= ball[j].position[2]) &&
 +
      (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[3] <= ball[j].position[3])) {
 +
        ball[i].angle = 135;
 +
        ball[j].angle = 45;
 +
      }
 +
      if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[3] >= ball[j].position[2]) &&
 +
      (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[3] <= ball[j].position[3])) {
 +
        ball[i].angle = 45;
 +
        ball[j].angle = 135;
 +
      }
 +
      if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[2] <= ball[j].position[3]) &&
 +
      (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[2] >= ball[j].position[2])) {
 +
        ball[i].angle = 135;
 +
        ball[j].angle = 45;
 +
      }
 +
      if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[2] <= ball[j].position[3]) &&
 +
      (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[2] >= ball[j].position[2])) {
 +
        ball[i].angle = 45;
 +
        ball[j].angle = 135;
 +
      }
 +
    }
 +
  }
 +
 
 +
  for (int i=5; i < 10; i++) {
 +
    //Bewegen
 +
    if (ball[i].angle <= 360) {
 +
      ball[i].angle -= 3;
 +
    }
 +
    if (ball[i].angle <= 0) {
 +
      ball[i].angle = 360;
 +
    }
 +
    //im Bogen
 +
    ball[i].vx = cos(radians(ball[i].angle))*ball[i].g1/6;
 +
    ball[i].vy = sin(radians(ball[i].angle))*ball[i].g2/6;
 +
    ball[i].x = ball[i].x + ball[i].vx;
 +
    ball[i].y = ball[i].y + ball[i].vy;
 +
    //Ballgröße zurücksetzen
 +
    if (ball[i].g1 != 90) {
 +
      ball[i].g1 = 90;
 +
    }
 +
    //Rand oben
 +
    if (ball[i].x <= a+c+ball[i].g1/2) {
 +
      ball[i].angle = 60;
 +
    }
 +
    //Rand unten
 +
    if (ball[i].x >= a+c+b-ball[i].g1/2) {
 +
      ball[i].angle = 180;
 +
      ball[i].g1 = ball[i].g1-20;
 +
    }
 +
    //links raus
 +
    if (ball[i].y <= 0-ball[i].g2) {
 +
      ball[i].y = height+ball[i].g2/2;
 +
    }
 +
    //rechts raus
 +
    if (ball[i].y >= height+ball[i].g2) {
 +
      ball[i].y = 0-ball[i].g2/2;
 +
    }
 +
    ball[i].maleBall();
 +
   
 +
    //Bälle stoßen aneinander
 +
    for (int j=i+1; j < 10; j++) {
 +
      if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[3] >= ball[j].position[2]) &&
 +
      (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[3] <= ball[j].position[3])) {
 +
        ball[i].angle = 135;
 +
        ball[j].angle = 45;
 +
      }
 +
      if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[3] >= ball[j].position[2]) &&
 +
      (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[3] <= ball[j].position[3])) {
 +
        ball[i].angle = 45;
 +
        ball[j].angle = 135;
 +
      }
 +
      if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[2] <= ball[j].position[3]) &&
 +
      (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[2] >= ball[j].position[2])) {
 +
        ball[i].angle = 135;
 +
        ball[j].angle = 45;
 +
      }
 +
      if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[2] <= ball[j].position[3]) &&
 +
      (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[2] >= ball[j].position[2])) {
 +
        ball[i].angle = 45;
 +
        ball[j].angle = 135;
 +
      }
 +
    }
 +
  }
 +
 
 +
  for (int i=10; i < 15; i++) {
 +
    //Bewegen
 +
    if (ball[i].angle <= 360) {
 +
      ball[i].angle -= 4;
 +
    }
 +
    if (ball[i].angle <= 0) {
 +
      ball[i].angle = 360;
 +
    }
 +
    //im Bogen
 +
    ball[i].vx = cos(radians(ball[i].angle))*ball[i].g1/6;
 +
    ball[i].vy = sin(radians(ball[i].angle))*ball[i].g2/6;
 +
    ball[i].x = ball[i].x + ball[i].vx;
 +
    ball[i].y = ball[i].y + ball[i].vy;
 +
    //Ballgröße zurücksetzen
 +
    if (ball[i].g1 != 90) {
 +
      ball[i].g1 = 90;
 +
    }
 +
    //Rand oben
 +
    if (ball[i].x <= a+c+b+c+ball[i].g1/2) {
 +
      ball[i].angle = 60;
 +
    }
 +
    //Rand unten
 +
    if (ball[i].x >= width-ball[i].g1/2) {
 +
      ball[i].angle = 180;
 +
      ball[i].g1 = ball[i].g1-20;
 +
    }
 +
    //links raus
 +
    if (ball[i].y <= 0-ball[i].g2) {
 +
      ball[i].y = height+ball[i].g2/2;
 +
    }
 +
    //rechts raus
 +
    if (ball[i].y >= height+ball[i].g2) {
 +
      ball[i].y = 0-ball[i].g2/2;
 +
    }
 +
    ball[i].maleBall();
 +
   
 +
    //Bälle stoßen aneinander
 +
    for (int j=i+1; j < 15; j++) {
 +
      if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[3] >= ball[j].position[2]) &&
 +
      (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[3] <= ball[j].position[3])) {
 +
        ball[i].angle = 135;
 +
        ball[j].angle = 45;
 +
      }
 +
      if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[3] >= ball[j].position[2]) &&
 +
      (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[3] <= ball[j].position[3])) {
 +
        ball[i].angle = 45;
 +
        ball[j].angle = 135;
 +
      }
 +
      if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[2] <= ball[j].position[3]) &&
 +
      (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[2] >= ball[j].position[2])) {
 +
        ball[i].angle = 135;
 +
        ball[j].angle = 45;
 +
      }
 +
      if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[2] <= ball[j].position[3]) &&
 +
      (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[2] >= ball[j].position[2])) {
 +
        ball[i].angle = 45;
 +
        ball[j].angle = 135;
 +
      }
 +
    }
 +
  }
 +
}
  
 
== Objekt Ball ==
 
== Objekt Ball ==

Revision as of 14:18, 27 March 2011

Code C

Ball[] ball = new Ball[15]; int a,b,c; //Abstände der Ebenen

void setup() {

 size(1280,1024);
 //size(1920,1200);
 smooth();
 noStroke();
 colorMode(HSB[[Farbe#Farbräume|Hue Saturation Brightness]] Colorspace,360,100,100,100);
 
 a = 500; //700 Größe der ersten Ebene
 b = 400; //600 Größe der zweiten Ebene
 c = 40; //60 Lücke
 
 for (int i=0; i < 5; i++) {
   ball[i] = new Ball();
   //in erster Ebene
   ball[i].x = random(ball[i].g1,a-ball[i].g1);
   ball[i].y = random(ball[i].g2,height-ball[i].g2);
   //Farbe
   ball[i].h = (int)random(360);
 }
 
 for (int i=5; i < 10; i++) {
   ball[i] = new Ball();
   //in zweiter Ebene
   ball[i].x = random(a+c+ball[i].g1,a+c+b-ball[i].g1);
   ball[i].y = random(ball[i].g2,height-ball[i].g2);
   //Farbe
   ball[i].h = (int)random(360);
 }
 
 for (int i=10; i < ball.length; i++) {
   ball[i] = new Ball();
   //in dritter Ebene
   ball[i].x = random(a+c+b+c+ball[i].g1,width-ball[i].g1);
   ball[i].y = random(ball[i].g2,height-ball[i].g2);
   //Farbe
   ball[i].h = (int)random(360);
 }

}

void draw() {

 background(0);
 fill(255);
 rect(a,0,c,height);
 rect(a+c+b,0,c,height);
 
 for (int i=0; i < 15; i++) {
   ball[i].position[0] = ball[i].x-ball[i].g1/2;
   ball[i].position[1] = ball[i].x+ball[i].g1/2;
   ball[i].position[2] = ball[i].y-ball[i].g2/2;
   ball[i].position[3] = ball[i].y+ball[i].g2/2;
 }
 
 for (int i=0; i < 5; i++) {
   //Bewegen
   if (ball[i].angle <= 360) {
     ball[i].angle -= 2;
   }
   if (ball[i].angle <= 0) {
     ball[i].angle = 360;
   }
   //im Bogen
   ball[i].vx = cos(radians(ball[i].angle))*ball[i].g1/6;
   ball[i].vy = sin(radians(ball[i].angle))*ball[i].g2/6;
   ball[i].x = ball[i].x + ball[i].vx;
   ball[i].y = ball[i].y + ball[i].vy;
   //Ballgröße zurücksetzen
   if (ball[i].g1 != 90) {
     ball[i].g1 = 90;
   }
   //Rand oben
   if (ball[i].x <= 0+ball[i].g1/2) {
     ball[i].angle = 60;
   }
   //Rand unten
   if (ball[i].x >= a-ball[i].g1/2) {
     ball[i].angle = 180;
     ball[i].g1 = ball[i].g1-20;
   }
   //links raus
   if (ball[i].y <= 0-ball[i].g2) {
     ball[i].y = height+ball[i].g2/2;
   }
   //rechts raus
   if (ball[i].y >= height+ball[i].g2) {
     ball[i].y = 0-ball[i].g2/2;
   }
   ball[i].maleBall();
   
   //Bälle stoßen aneinander
   for (int j=i+1; j < 5; j++) {
     if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[3] >= ball[j].position[2]) && 
     (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[3] <= ball[j].position[3])) {
       ball[i].angle = 135;
       ball[j].angle = 45;
     }
     if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[3] >= ball[j].position[2]) && 
     (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[3] <= ball[j].position[3])) {
       ball[i].angle = 45;
       ball[j].angle = 135;
     }
     if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[2] <= ball[j].position[3]) && 
     (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[2] >= ball[j].position[2])) {
       ball[i].angle = 135;
       ball[j].angle = 45;
     }
     if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[2] <= ball[j].position[3]) && 
     (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[2] >= ball[j].position[2])) {
       ball[i].angle = 45;
       ball[j].angle = 135;
     }
   }
 }
 
 for (int i=5; i < 10; i++) {
   //Bewegen
   if (ball[i].angle <= 360) {
     ball[i].angle -= 3;
   }
   if (ball[i].angle <= 0) {
     ball[i].angle = 360;
   }
   //im Bogen
   ball[i].vx = cos(radians(ball[i].angle))*ball[i].g1/6;
   ball[i].vy = sin(radians(ball[i].angle))*ball[i].g2/6;
   ball[i].x = ball[i].x + ball[i].vx;
   ball[i].y = ball[i].y + ball[i].vy;
   //Ballgröße zurücksetzen
   if (ball[i].g1 != 90) {
     ball[i].g1 = 90;
   }
   //Rand oben
   if (ball[i].x <= a+c+ball[i].g1/2) {
     ball[i].angle = 60;
   }
   //Rand unten
   if (ball[i].x >= a+c+b-ball[i].g1/2) {
     ball[i].angle = 180;
     ball[i].g1 = ball[i].g1-20;
   }
   //links raus
   if (ball[i].y <= 0-ball[i].g2) {
     ball[i].y = height+ball[i].g2/2;
   }
   //rechts raus
   if (ball[i].y >= height+ball[i].g2) {
     ball[i].y = 0-ball[i].g2/2;
   }
   ball[i].maleBall();
   
   //Bälle stoßen aneinander
   for (int j=i+1; j < 10; j++) {
     if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[3] >= ball[j].position[2]) && 
     (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[3] <= ball[j].position[3])) {
       ball[i].angle = 135;
       ball[j].angle = 45;
     }
     if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[3] >= ball[j].position[2]) && 
     (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[3] <= ball[j].position[3])) {
       ball[i].angle = 45;
       ball[j].angle = 135;
     }
     if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[2] <= ball[j].position[3]) && 
     (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[2] >= ball[j].position[2])) {
       ball[i].angle = 135;
       ball[j].angle = 45;
     }
     if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[2] <= ball[j].position[3]) && 
     (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[2] >= ball[j].position[2])) {
       ball[i].angle = 45;
       ball[j].angle = 135;
     }
   }
 }
 
 for (int i=10; i < 15; i++) {
   //Bewegen
   if (ball[i].angle <= 360) {
     ball[i].angle -= 4;
   }
   if (ball[i].angle <= 0) {
     ball[i].angle = 360;
   }
   //im Bogen
   ball[i].vx = cos(radians(ball[i].angle))*ball[i].g1/6;
   ball[i].vy = sin(radians(ball[i].angle))*ball[i].g2/6;
   ball[i].x = ball[i].x + ball[i].vx;
   ball[i].y = ball[i].y + ball[i].vy;
   //Ballgröße zurücksetzen
   if (ball[i].g1 != 90) {
     ball[i].g1 = 90;
   }
    //Rand oben
   if (ball[i].x <= a+c+b+c+ball[i].g1/2) {
     ball[i].angle = 60;
   }
   //Rand unten
   if (ball[i].x >= width-ball[i].g1/2) {
     ball[i].angle = 180;
     ball[i].g1 = ball[i].g1-20;
   }
   //links raus
   if (ball[i].y <= 0-ball[i].g2) {
     ball[i].y = height+ball[i].g2/2;
   }
   //rechts raus
   if (ball[i].y >= height+ball[i].g2) {
     ball[i].y = 0-ball[i].g2/2;
   }
   ball[i].maleBall();
   
   //Bälle stoßen aneinander
   for (int j=i+1; j < 15; j++) {
     if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[3] >= ball[j].position[2]) && 
     (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[3] <= ball[j].position[3])) {
       ball[i].angle = 135;
       ball[j].angle = 45;
     }
     if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[3] >= ball[j].position[2]) && 
     (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[3] <= ball[j].position[3])) {
       ball[i].angle = 45;
       ball[j].angle = 135;
     }
     if ((ball[i].position[1] >= ball[j].position[0]) && (ball[i].position[2] <= ball[j].position[3]) && 
     (ball[i].position[1] <= ball[j].position[1]) && (ball[i].position[2] >= ball[j].position[2])) {
       ball[i].angle = 135;
       ball[j].angle = 45;
     }
     if ((ball[i].position[0] <= ball[j].position[1]) && (ball[i].position[2] <= ball[j].position[3]) && 
     (ball[i].position[0] >= ball[j].position[0]) && (ball[i].position[2] >= ball[j].position[2])) {
       ball[i].angle = 45;
       ball[j].angle = 135;
     }
   }
 }

}

Objekt Ball