|
Beispiel 2: Die Window-to-Viewport-Transformation
|
Das zweite Beispiel ist die Window-to-Viewport-Transformation. Dazu zunächst einige Informationen:
Die bisher erwähnten Koordinatensysteme waren reellwertig und hatten beliebige Einheiten wie 1/2Meter
oder 3/4 Zoll. In ihnen werden die Objekte einer virtuellen Welt modelliert. Man nennt sie deshalb auch
Welt-Koordinaten-Systeme. Um die Objekte anzuzeigen, muß man ihre Weltkoordinaten auf
Bildschirmkoordinaten umrechenen, denn der Bildschirm arbeitet mit ganzzahligen und begrenzten
Koordinaten z.B. 640x320 Pixel. Welchen Teil der Weltkoordinatensysteme man darstellen möchte, legt man
durch ein Rechteck, genannt Window, fest, von dem man die untere linke und obere rechte Ecke angibt.
Alle Objekte in diesem Rechteck werden auf dem Bildschirm angezeigt, wiederum innerhalb eines
Rechteckes, genannt Viewport. Objekte, die ganz oder teilweise außerhalb des Windows liegen, werden bei
der Ausgabe abgeschnitten (clipping). Die Seitenverhältnisse von Window und Viewport müssen nicht gleich
sein.
|
|
|
Abb. 1.7:
Weltkoordinaten mit Window und Bildschirmkoordinaten mit Viewport
|
Die Window-to-Viewport-Transformation ist wieder eine Verküpfung von elementaren Transformationen:
- Zuerst verschiebt man das Window im Weltkoordinatensystem mit seinem Inhalt in den Ursprung
- dann paßt man die Größe seiner Seiten an die des Viewports an
- und schiebt es (diesmal in Bildschirm-Koordinaten) an seinen endgültigen Platz.
|
|
|
|
|
Abb. 1.8:
Die Window-to-Viewport-Transformation
|
Die Transformationsmatrix berechnet sich also aus: