CiL der RWTH Aachen University Lehrstuhl Informatik 8 Lehr- und Forschungsgebiet Informatik 9

Informatik - Das Richtige für mich?
ein virtueller Besuch einer Vorlesungsstunde

Verschiedene Transformationen

Du hast bereits gesehen, welche Transformationen an einem Objekt möglich sind. Im Beispiel auf der Motivationsseite konntest du ein 3D-Objekt transformieren. Wir fangen der Einfachheit halber erst einmal mit 2 Dimensionen an.

Als Beispiel nehmen wir das unten abgebildete Haus. Dieses Haus besteht aus fünf Punkten, die durch Linien verbunden sind. Wenn man das Haus transformieren möchte, muss man die Punkte verschieben, also deren Position neu berechnen, und dann einfach wieder Linien zwischen den Punkten ziehen.

Du hast gesehen, dass verschiedene Transformationen veschiedene Auswirkungen auf ein Objekt haben. Es kann vergrößert, gedreht und verschoben werden.
Fangen wir mit einer einfachen Transformation an:

Skalierung

Skalieren bedeutet die Größe eines Objektes zu ändern. Um ein Objekt zu verbreitern, verschiebt man die x-Koordinaten aller Punkte des Objekts um den gleichen Faktor (entlang der x-Achse). Analog kann man die Höhe eines Objekts verändern, indem man alle Punkte um den gleichen Faktor entlang der y-Achse verschiebt.
Multipliziert man alle x- und y-Koordinaten mit demselben Faktor, bleibt die Form erhalten. Nimmt man jedoch unterschiedliche Zahlen, wird das Objekt gestaucht oder gestreckt.

Überlege dir, welche Werte für Faktoren gewählt werden müssen, um ein Objekt zu vergrößern bzw. zu verkleinern. Was passiert, wenn Faktoren negativ sind? -- Die Antwort kann man sich prima am folgenden Applet selbst erarbeiten, allerdings nicht für negative Werte.

Die Faktoren zum Skalieren werden in eine Matrix eingetragen. Die erste Spalte repräsentiert die Verschiebung entlang der x-Achse, die zweite Spalte die Verschiebung entlang der y-Achse. Ein Punkt wird dann mit der Matrix multipliziert, um ihn zu verschieben.
Mathematisch wird eine Skalierung also folgendermaßen dargestellt:

Skalierung

Dies kannst du dir auch am Beispiel verdeutlichen:

Punkt mal Matrix

Um ein Objekt zu skalieren, werden alle seine Punkte mit der Matrix multipliziert. Wenn man nun die neu berechneten Punkte wie vorher verbindet, erhält man das in seiner Größe veränderte Objekt.

Überlege dir, wie die Matrix S(x,y) aussehen muss, wenn das Haus doppelt so breit und seine Höhe um die Hälfte reduziert werden soll. Überprüfe dein Ergebnis mit dem Applet. (Die Werte kannst du über den Schieberegler eingeben.)

Beobachte, wie sich die Matrix verändert.