I am currently working on an English translation. If you like to help to proofread please contact me: ullenboom ät g m a i l dot c o m.

Java Videotraining Werbung

1. Grafikausgabe

1.1. Graphics-API

1.1.1. Klasse java.awt.Graphics ⭐

  • Implementiere eine paint(…​)-Methode, um eine Linie anzuzeigen. Über die Zeichenmethoden kann man unter der Dokumentation von java.awt.Graphics mehr erfahren.

  • Wie kann man Punkte darstellen? Schreibe eine Methode drawPoint( Graphics g, int x, int y ), die einen Punkt auf dem Bildschirm ausgibt.

1.1.2. Fraktake ⭐⭐

Zeichne eine Punktefolge, die durch eine Iterationsvorschrift gegeben wird. Wähle eine der drei Abbildungen zufällig aus:

  • (x, y) → (x/2, y/2)

  • (x, y) → (1/2 + x/2, 1/2 + y/2)

  • (x, y) → (1/2 + x/2, y/2)

Zeichne etwa 50.000 Punkte dieser Iteration. Multipliziere den Punkt vor dem Zeichnen mit 200.

1.1.3. Farben ⭐

Schreibe ein Programm, das ein quadratisches Canvas mit 1000 zufälligen Punktepaaren füllt. Markiere diejenigen Punkte, die in den beschriebenen Kreis fallen, rot ( setColor(Color.RED)) aus java.awt.Graphics , die anderen schwarz. Speichere die Punkte in einem Array, damit nicht bei jedem paint(…​) neue Punkte gezeichnet werden.

1.2. Graphics-2D-API

1.2.1. Das Graphics2D-Object ⭐

Schreibe ein Programm, welches mit der 2D-API ein zufälliges Linienmuster zeichnet.

  • Schalte das Antialiasing ein und aus.

  • Zeichne die Linien mit einer Strichstärke von 3 Pixeln.

  • Die Linien sollen ein Muster bekommen: zwei Pixel frei und ein Pixel gesetzt.

1.2.2. Arbeiten mit 2D-Objekten ⭐⭐

Programmiere ein Beispiel mit AffineTransformation, das etwa ein Rechteck der Größe 100 x 100 Pixel skaliert und um 45 Grad rotiert wird.

Zeichne das Rechteck mit Linien der Stärke 5 und gestrichelt. Konfigurierte das Zeichnen so, dass die Linienecken rund sind.

Nutze GeneralPath um einen einen Stift in die Mitte des Schirms zu setzen, dann 10 Pixel nach rechts, um 45 Grad gedreht, dann 10 Pixel nach links zu gehen. Affine Transformationen soll es nicht geben.