4 | Do 24. Feb | OOP + PImage
Mehrere Konstruktoren
♦
Multiple Constructors
Eine Klasse kann mehrere Konstruktoren haben. Dadurch lassen sich Objektinstanzen mit unterschiedlich vielen, im Extremfall auch ohne, Paramter erzeugen. Schau dazu das Bespiel der
Kreisklasse mit mehreren Konstruktoren an.
Aufgabe: Erweitere die Klasse deines grafischen Objekts von gestern mit mehreren Konstruktoren.
Vererbung
♦
Inheritance
♦
super
Eine Klasse lässt sich mit 'class Strich extends Punkt' erweitern. Der Bauplan der Punkt Klasse wird übernommen und kann mit weiteren Methoden der Strich Klasse erweitert werden. Neben 'extends' ist 'super' ein wichtiger Befehl. Mit 'super' lassen sich der Konstruktor sowie Methoden der Mutterklasse aufrufen.
Siehe
Beispiel OOP Extends
Aufgabe:
- Tauscht die im vorherigen Beispiel erstellten Klassen aus und erweitert diese unter Berücksichtigung von Vererbung.
- Wendet die Mutter und Kind Klassen in einer Animation an.
Entfernen eines Objekts
Mit der Zuweisung 'objektname = null;' wird ein Objekt 'zerstört.' Achtung: Methodenaufrufe des Objekts werden von diesem Zeitpunkt an eine NullPointer Exception ergeben. ... Das Objekt gibt es ja nicht mehr...
Siehe Beispiel
OOP Null
Aufgabe: Erzeuge Instanzen deines graphischen Objekts und lösche diese der Reihe nach wieder mit der Taste 'd'.
PImage Klasse
♦
PImage
Beispiele
→ Shiffman Example 15-1:
Hello World Images
→ Shiffman Example 15-2:
Image Sprite
Bildfilter mit tint()
Lest Seiten 255 – 259
Kapitel 15-3
Bildfilter selber schreiben
Kapitel 15.5 Pixels + Array
Example 15.5, Seite 262 ansehen
loadPixels()
setPixels()
Example 15.6, Seite 263
Achtung: Die Variablen x und y in der For Schlaufe entsprechen NICHT der x und y Koordinate. Es ist genau umgekehrt: Variable x = Y Koordinate und Variable y = X Koordinate
Image Pixels
Example 15.7, Seite 265
Handmade Tint filter
Example 15.8, Seite 266
Example 15.9, Seite 267
Duotone Image und Verwendung zweier Bilder, wovon nur eines dargestellt wird.
Example 15.10, Seite 267
Convolution
Example 15.12, Seite 269
Example 15.13, Seite 271
Bildfilter mit
filter()
Aufgaben:
- Lade mehrere Bilder in ein Array und stelle das erste Bild auf dem Screen dar. Mit einem Klick ins Bild wird das nächste dargestellt. (Lösung: Shiffman 15-3: Bildarray)
- Berechne die durchschnittliche Helligkeit eines Bildes