Die Aufgabe
Aufgabe 4
Es wird wieder die Klasse grafik.Zeichenflaeche( ) mit der statischen Methode zeichnePixel( ) verwendet. Es sollen wieder Dreiecke gezeichnet werden. Der Code zum Zeichnen eines Dreiecks findet sich in der Klasse grafik.DreieckApp.
Der weitere Code in dieser Klasse wird in Aufgabenteil b) benötigt.
a) Erstellen Sie eine Klasse Dreieck. Sie soll Attribute für die notwendigen Angaben zur Festlegung der Position und Größe eines gleichseitigen Dreiecks und einen Konstruktor zur Befüllung dieser Attribute mit Werten enthalten. Wenn ein neues Dreieck-Objekt angelegt wird, soll das betreffende Dreieck auf der Zeichenfläche dargestellt werden.
Legen Sie in der main-Methode der Klasse „DreieckApp“ mindestens vier Dreieck-Objekte an.
Die while-Schleife können Sie vorerst auskommentieren.
b) Fügen Sie der Klasse Dreieck eine Methode „verschiebe“ hinzu, mit der der das Dreieck um einen gewünschten x- und einen gewünschten y-Wert verschoben werden kann. Das verschobene Dreieck soll auch wieder gezeichnet werden, so dass das Dreieck zweimal zu sehen ist: Einmal an der ursprünglichen Stelle, einmal an der neuen Stelle.
Entfernen Sie die Kommentar-Markierung der while-Schleife. Speichern Sie alle Dreiecke in der Klasse DreieckApp in einem Array „dreiecke“. Die über die Konsole eingegebenen Nummer können Sie als Index verwenden um auf das gewünschte Dreieck zuzugreifen, z. B. dreiecke[2].
c) Nun soll das verschobene Dreieck an der ursprünglichen Stelle gelöscht werden. Da sich ein Dreieck mit anderen Dreiecken überlappen kann, wäre es keine gute Lösung, einfach das ursprüngliche Dreieck in Weiß zu zeichnen. Stattdessen soll die Zeichenfläche komplett geleert werden (mit der Methode „Zeichenflaeche.leere( )), um anschließend alle Dreiecke neu zu zeichnen.
Hinweis: Falls Sie aus mehreren Methoden auf das Array „dreiecke“ zugreifen wollen, müssen Sie es außerhalb der main-Methode als statisches Attribut der Klasse DreieckApp speichern.
Die Klasse grafik.Zeichenflaeche öffnet ein Fenster mit 1000 × 800 Pixeln. Der Ursprung (0, 0) liegt links unten, x wächst nach rechts, y nach oben. Zeichenflaeche.zeichnePixel(x, y) färbt ein Pixel. Die Klasse liegt uns nicht vor; geprüft haben wir mit einem Nachbau, der dieselben Methoden hat und das Bild als Raster auf der Konsole ausgibt. Die Bilder unten zeigen die Ecken aus diesen Läufen.
zeichnePixel gezeichnet, mit statischen Methoden in DreieckApp.- a) Klasse Dreieck: Lage speichern, beim Anlegen zeichnen; vier Dreiecke.
- b) verschiebe; Dreiecke im Array; über die Konsole wählen und verschieben.
- c) Statt doppelt: Fläche leeren und alle Dreiecke neu zeichnen.