# Olympische Ringe



## jonasfutsch (6. Feb 2016)

Ich muss eine Java Applet schreiben, in der die Olympischen Ringe an einer zufälligen Stelle auf dem Bildschirm aufpoppen und wieder verschwinden und dann an einer anderen Stelle wieder aufpoppen usw. (wie ein Bildschirmschoner).
Ich weiss wie man die Olympischen Ringe schreibt aber nicht wie man solche Animationen macht.
Das hab ich schon geschrieben aber ich brauche Hilfe bei den Animationen:


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class OlympischeRingeAnimation extends JApplet {
  public void paint(Graphics g)   {
    Graphics2D g2 = (Graphics2D) g;
    g2.setStroke( new BasicStroke(10));
    for (int f = 0;f <4 ;f++) {
      for (int i = 0;i <6 ;i++ ) {
        for (int a =1;a<6 ;a++ ) {
          int b =ringeZeichnen1 (a);
          int c =ringeZeichnen2 (a);
          Color farbe = ring (a);
          g.setColor(farbe);
          g.drawOval(b + 310 *f, c +147 *i, 100,100);
        }
      }
    }
  }
  public static int ringeZeichnen1 (int x){
    int b;
    b = 50 * x;
    return b;
  }
  public static int ringeZeichnen2 (int y){
    int c;
    int e =0;
    e = y % 2;
    c = 100 - 50 * e;
    return c;
  }
  public static Color ring (int z) {
    Color farbe = Color.red;
    if (z == 1) {
      farbe = Color.blue;
      return farbe;
    }
    if (z == 2) {
      farbe = Color.yellow;
      return farbe;
    }
    if (z == 3) {
      farbe = Color.black;
      return farbe;
    }
    if (z == 4) {
      farbe = Color.green;
      return farbe;
    }
    if (z == 5) {
      farbe = Color.red;
      return farbe;
    }
    return farbe;
  }
}
```


----------



## Meniskusschaden (6. Feb 2016)

Da funktioniert ja schon eine ganze Menge.

Du könntest eine Methode `zeichneOlympischeRinge(Graphics g, int x, int y);`erstellen, in die du deine Zeichenoperationen auslagerst. Die Zeichenoperationen sollten dann alle relativ zum Punkt (x, y) programmiert werden. Dann kannst du in der paint-Methode einfach mit Zufallszahlen für x und y die Methode zeichneOlympischeRinge aufrufen.

Um das Neuzeichnen anzustossen könntest du einen Thread mit einer Schleife erzeugen, in der der Thread sich ein paar Sekunden schlafen legt und dann die repaint-Methode des Applets aufruft.

Soll immer nur ein Olympia-Symbol gleichzeitig angezeigt werden, oder mehrere? Abhängig davon kann es komplizierter werden, wenn es darum geht Überschneidungen zu vermeiden oder einzelne Symbole zu löschen.

Deine Ringe sind übrigens nicht wirklich korrekte olympische Ringe, denn die müßten eigentlich untereinander verkettet sein. Bei dir liegt aber der zuletzt gezeichnete Ring über allen anderen. Falls korrekte olympische Ringe gefordert sind, müsstest du die Zeichenoperationen also noch weiter entwickeln.


----------

