Definition der Projektionen in CanvasGI

Empfehlungen zur Definition von Projektionen

Die volle Allgemeinheit, mit der auf den Seiten Mathematik der Zentralprojektion bzw. Mathematik der Parallelprojektion die beiden wichtigsten Projektionsvarianten beschrieben wurden, sollte nicht dazu verführen, beliebige Kombinationen der jeweils vier Vektoren, die eine Projektion definieren, zu verwenden. Folgende Empfehlungen können allgemein gegeben werden:

Definition der Projektionen in CanvasGI-3D

Die allgemeinen Definitionen mit jeweils 4 Vektoren, mit denen auf den Seiten Mathematik der Zentralprojektion bzw. Mathematik der Parallelprojektion die Projektionsvarianten beschrieben werden, sind im 3D-Bereich von CanvasGI zwar komplett realisiert (und können bei Bedarf für spezielle Untersuchungen aktiviert werden), wenn aber nicht wirklich gute Gründe gegen die nachfolgend beschriebenen vereinfachten Definitionen sprechen, die eine Projektion mit nur zwei Vektoren eindeutig beschreiben, dann sollten diese benutzt werden. Die Funktionen, die nachfolgend beschrieben werden, arbeiten mit diesen sinnvollen Einschränkungen.

Definition einer Zentralprojektion in CanvasGI:
  • Es werden nur der "Eye point" (Projektionszentrum) und ein Punkt der Projektionsebene ("Referenzpunkt") im raumfesten x-y-z-Koordinatensystem ("World coordinates") definiert.
  • Die Projektionsebene wird von den CanvasGI-Funktionen automatisch so gelegt, dass sie senkrecht zur Verbindungslinie vom "Eye point" zum Referenzpunkt liegt (der Normalenvektor hat also die Richtung dieser Verbindungslinie, der Referenzpunkt ist gleichzeitig der sogenannte "Hauptpunkt" der Projektion).
  • Als "Up vector" wird in der Regel automatisch die z-Achse gewählt (dies vermittelt den Eindruck, als würde der Beobachter auf einer zur x-y-Ebene parallelen Ebene aufrecht stehen). Wenn der "Eye point" selbst auf der z-Achse liegt, wird entweder die positive y-Achse ("Eye point" liegt auf der positiven z-Achse, "Draufsicht") oder die negative y-Achse ("Eye point" liegt auf der negativen z-Achse) zum "Up vector".

Diese Definition mit zwei Vektoren ist nicht nur eindeutig, sie erfüllt auch die oben gegebenen Empfehlungen. Eine entsprechende Aussage gilt auch für die folgende "Zwei-Vektor-Definition" der Parallelprojektion.

Definition einer Parallelprojektion in CanvasGI:
  • Es werden nur der "Vektor der Blickrichtung" und ein Punkt der Projektionsebene ("Referenzpunkt") im raumfesten x-y-z-Koordinatensystem ("World coordinates") definiert.
  • Die Projektionsebene wird von den CanvasGI-Funktionen automatisch so gelegt, dass sie senkrecht zum Vektor der Blickrichtung liegt (der Normalenvektor hat also die gleiche Richtung wie der Vektor der Blickrichtung).
  • Als "Up vector" wird in der Regel automatisch die z-Achse gewählt (dies vermittelt den Eindruck, als würde der Beobachter auf einer zur x-y-Ebene parallelen Ebene aufrecht stehen). Wenn der "Vektor der Blickrichtung" parallel zur z-Achse ist, wird entweder die positive y-Achse ("Vektor der Blickrichtung" hat negative z-Komponente, "Draufsicht") oder die negative y-Achse ("Vektor der Blickrichtung" hat positive z-Komponente) zum "Up vector".

Arbeiten mit Projektionen

Es ist immer eine Projektion eingestellt, deren Parameter mit Funktionen abgefragt werden können, deren Namen mit prget.. beginnen, und die mit Funktionen modifiziert werden können, deren Namen mit prset.. beginnen.

Die Funktionen, mit denen 3D-Objekte gezeichnet werden, haben Namen, die mit w... beginnen. Dieser Anfangsbuchstabe steht für "World coordinates" (3D-Koordinaten, die sich auf ein kartesisches x-y-z-Koordinatensystem beziehen). Die Funktionen erwarten also Koordinaten-Tripel, die vor der Zeichenaktion auf zweidimensionale "User coordinates" unter Verwendung der gerade gültigen Projektion umgerechnet werden.

Es können auch Transformationen eingestellt werden, die auf die "World coordinates" vor der Umrechnung auf 2D-Koordinaten nach der Projektionsvorschrift angewendet werden.

Weiterlesen

Auf folgenden Seiten werden die hier bschriebenen Projektionen an Beispielen demonstriert:

Folgende Seiten werden als Einführung in die Benutzung der 3D-Grafik mit CanvasGI empfohlen: