35
11 Mathematisches Rüstzeug Von den Daten der Szenerie bis zur fertigen Grafik ist eine Vielzahl von Trans- formationen der Ausgangsdaten erforderlich, bis der Bildschirm oder Drucker mit Gerätekoordinaten gefüttert werden kann und eine Grafik entsteht. Diese Transfor- mationen – Ausschnitte, Verschiebungen, Drehungen,usw. – werden mittels Vek- torrechnung und im Matrizencode beschrieben. Die wichtigsten Rechenregeln mit Vektoren (auch als 1-zeilige oder 1-spaltige Matrix) und Matrizen sind nachfolgend zusammengefasst, gefolgt von einigen speziellen Aufgaben ihrer Anwendung in der Computergrafik. 11.1 Vektoren Ein Vektor {a} ist eine Größe, die durch ihre Länge, Richtung und ihre Orientierung gegeben ist. Ein Vektor wird als gerichtete Strecke mit einem Orientierungspfeil dargestellt und ist an keine bestimmte Position gebunden (Abb. 11.1). Zwei Vektoren sind parallel, wenn sie gleichgerichtet sind und sie sind antipar- allel, wenn sie entgegengesetzt gerichtet sind. Die Größe des Vektors (seine Länge) spielt keine Rolle. Zwei Vektoren sind kollinear, wenn gilt fbgD f fag mit einem beliebigen Faktor f. Abb. 11.1 Ein Vektor 309 H.-G. Schiele, Computergrafik für Ingenieure, DOI 10.1007/978-3-642-23843-7_11, c Springer-Verlag Berlin Heidelberg 2012

MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11Mathematisches Rüstzeug

Von den Daten der Szenerie bis zur fertigen Grafik ist eine Vielzahl von Trans-formationen der Ausgangsdaten erforderlich, bis der Bildschirm oder Drucker mitGerätekoordinaten gefüttert werden kann und eine Grafik entsteht. Diese Transfor-mationen – Ausschnitte, Verschiebungen, Drehungen, usw. – werden mittels Vek-torrechnung und im Matrizencode beschrieben. Die wichtigsten Rechenregeln mitVektoren (auch als 1-zeilige oder 1-spaltige Matrix) und Matrizen sind nachfolgendzusammengefasst, gefolgt von einigen speziellen Aufgaben ihrer Anwendung in derComputergrafik.

11.1 Vektoren

Ein Vektor {a} ist eine Größe, die durch ihre Länge, Richtung und ihre Orientierunggegeben ist. Ein Vektor wird als gerichtete Strecke mit einem Orientierungspfeildargestellt und ist an keine bestimmte Position gebunden (Abb. 11.1).

Zwei Vektoren sind parallel, wenn sie gleichgerichtet sind und sie sind antipar-allel, wenn sie entgegengesetzt gerichtet sind. Die Größe des Vektors (seine Länge)spielt keine Rolle. Zwei Vektoren sind kollinear, wenn gilt fbg D f � fag mit einembeliebigen Faktor f.

Abb. 11.1 Ein Vektor

309H.-G. Schiele, Computergrafik für Ingenieure,DOI 10.1007/978-3-642-23843-7_11, c� Springer-Verlag Berlin Heidelberg 2012

Page 2: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

310 11 Mathematisches Rüstzeug

Abb. 11.2 Ortsvektor zum Punkt P.x; y; z/

Abb. 11.3 Basisvektoren

In der Computergrafik werden neben Vektoren auch Strahlen verwendet. EinVektor wird über seine Richtung und seinen Betrag, ein Strahl dagegen über seineRichtung und seinen Ursprung definiert.

Ortsvektoren haben zusätzlich eine feste Position, da sie im Koordinatenur-sprung beginnen. Sie werden meist als Koordinaten von Knoten verwendet; inAbb. 11.2 der Ortsvektor zum Punkt P.x; y; z/.

Alles Folgende bezieht sich auf ein rechtsorientiertes kartesisches Koordinaten-system . Die Einheitsvektoren in Richtung der positiven x-, y-, z-Achsen bezeichnetman mit i, j, k, sie heißen Grund- oder Basisvektoren (Abb. 11.3).

Projiziert man einen Vektor {a} auf die Achsen eines solchen Koordinatensys-tems, so erhält man wiederum Vektoren. Sie werden vektorielle Komponenten desVektors {a} genannt. Ihre senkrechten Projektionen ax, ay, az lassen sich als Viel-faches der zugehörigen Einheitsvektoren auffassen; az D az � i; ay D ay � j; az Daz � k. Die skalare Größe ai ist die i-te vorzeichenbehaftete Länge einer vektoriel-len Komponente von {a}. Sie ist positiv, wenn sie mit der entsprechenden Achsegleichgerichtet ist. Ein Vektor {a} wird in folgender Weise notiert:

fag ! .a1; a2; : : : an/

Page 3: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.1 Vektoren 311

Die Anzahl n der Komponenten eines Vektors wird seine Ordnung genannt. DieLänge (der Betrag) |a| des Vektors {a} ist:

jaj D p.a2

1 C a22 C : : : C a2

n/

Der Vektor {a} wird zum Einheitsvektor mit der Länge D 1 normiert, indem jedeKomponente durch |a| dividiert wird. Der Nullvektor ist ein Vektor der Länge 0.

11.1.1 Entgegengesetzter Vektor

Zu jedem Vektor {a} gibt es genau einen Vektor f�ag, mit der Eigenschaft:

fag C f�ag D f0g�fag ! .�a1; �a2; : : : � an/

11.1.2 Parallelität und Vektoren

Das Vielfache eines Vektors liegt parallel zu diesem und unterscheidet sich nurdurch seinen Betrag.

fbg D z � fagHierin ist z eine rationale Zahl. Man kann die Umkehrung benutzen und folgern:Wenn einer der beiden Vektoren als Vielfaches vom anderen dargestellt werdenkann, sind sie parallel.

11.1.3 Summe und Differenz

Unter der Summe bzw. Differenz zweier Vektoren versteht man:

fag ˙ fbg D .a1 ˙ b1; a2 ˙ b2; : : : an ˙ bn/

Die Addition ist vertauschbar:

fag ˙ fbg D fbg ˙ fag

11.1.4 Multiplikation Zahl mit Vektor

Für die Multiplikation eines Vektors mit einer reellen Zahl (u, v) wird festgelegt,dass jedes Element des Vektors (seine Komponenten) mit dieser Zahl zu multipli-zieren ist.

Page 4: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

312 11 Mathematisches Rüstzeug

fbg D u � fagD .u � a1; u � a2; : : : u � an/

Es gelten folgende Rechengesetze:

u � .fag C fbg/ D u � fag C u � fbg.u C v/ � fag D u � fag C v � fag

11.1.5 Skalarprodukt

Für die Multiplikation zweier Vektoren miteinander gibt es zwei Möglichkeiten:Beim Skalarprodukt ist das Ergebnis eine Zahl, beim Vektorprodukt dagegen wiederein Vektor. Das Skalarprodukt der beiden Vektoren

fag D .a1; a2; a3/ und fbg D .b1; b2; b3/

berechnet sich durch Multiplikation der Komponenten mit gleichem Index undaddiert danach alle Komponentenprodukte (bzgl. der Schreibweise siehe Ab-schn. 11.2):

.a/ � fbg D a1 � b1 C a2 � b2 C a3 � b3:

Man bezeichnet diese reelle Zahl als Skalarprodukt der Vektoren {a} und {b}. Hierwird sofort deutlich, dass beide Vektoren die gleiche Ordnung haben müssen, d. h.,sie haben gleich viele Komponenten. In gleicher Weise wird das Skalarprodukt fürzwei Vektoren mit jeweils n Komponenten berechnet. Ist das Skalarprodukt D 0,steht ein Vektor senkrecht auf dem anderen.

Mit dem Skalarprodukt lässt sich der von beiden Vektoren eingeschlossene Win-kel ® berechnen:

fag � fbgjaj � jbj D cos ®

Für den Fall, dass beide Vektoren normiert sind, gilt cos ® D .a/ � fbg. Es geltenfolgende Rechengesetze:

fag � fbg D fbg � fag.u � fag/ � fbg D u � .fbg � fag/fcg � .fag C fbg/ D fcg � fag C fcg � fbgfcg � .fag � fbg/ ¤ .fcg � fag/ � fbg Reihenfolge beachten!!

Page 5: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.1 Vektoren 313

Abb. 11.4 „Rechts“system der rechten Hand

11.1.6 Vektorprodukt

Das vektorielle Produkt fag � fbg zweier Vektoren fag D .ax, ay, az/ und fbg D.bx, by, bz/ ist definiert als ein Vektor fcg mit folgenden Komponenten:

fag � fbg D fcg !cx D ay � bz � az � by

cy D az � bx � ax � bz

cz D ax � by � ay � bx

Die Länge jcj des Ergebnisvektors fcg entspricht dem Flächeninhalt des von fag undfbg gebildeten Parallelogramms. Des Weiteren ist fcg ein Normalenvektor, der aufder von fag und fbg aufgespannten Ebene senkrecht steht. Seine Orientierung istdadurch festgelegt, dass die drei Vektoren ein „Rechts“system wie die drei Fingerder rechten Hand bilden (Abb. 11.4).

Normiert man die Komponenten ck mit der Länge |c|, dann erhält man einen aufder Ebene senkrecht stehenden Einheitsvektor. Hiervon wird in der Grafikprogram-mierung häufig Gebrauch gemacht.

Es gelten folgende Rechengesetze:

fag � fbg D �fbg � fag.u � fag/�fbg D u � .fag � fbg/fcg�.fag C fbg/ D fcg � fag C fcg � fbgfag � fag D f0gfag � fbg D f0g falls fbg zu fag parallel/antiparallel:

Das {0}-Ergebnis ist ebenfalls in der Grafikprogrammierung interessant, um par-allele Vektoren zu finden. Das Vektorprodukt gilt nur im 3-dimensionalen, dasSkalarprodukt jedoch im n-dimensionalen Raum.

Im Vorgriff auf die Arbeit mit Matrizen wird das Vektorprodukt alterna-tiv als Matrixmultiplikation dargestellt. Hierzu wird mit dem Vektor {a} eineschief-symmetrische Matrix wie folgt aufgebaut und diese mit dem Vektor {b}multipliziert. Der Ergebnisvektor ist das Vektorprodukt:

Page 6: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

314 11 Mathematisches Rüstzeug

11.1.7 Spatprodukt

Die drei Vektoren {a}, {b} und {c} lassen sich auch mit einem Vektor- und einemSkalarprodukt verknüpfen gemäß:

.fag � fbg/ � fcg

Das Ergebnis ist eine Zahl (aus dem Skalarprodukt), die dem Betrag nach das Volu-men des von {a}, {b} und {c} aufgespannten Spats ist (D Parallelepiped; ein Körper,der von sechs Parallelogrammen begrenzt wird). Wenn das Spatvolumen ¤ 0 ist,bilden die drei Vektoren tatsächlich ein Spat und das Ergebnis ist nicht weiter vonBelang. Liefert das Produkt allerdings den Wert 0, dann liegt einer der drei Vektorenin der von den beiden anderen Vektoren aufgespannten Ebene. In der Programmie-rung wird dieser Sachverhalt gelegentlich genutzt, um die Unabhängigkeit dreierVektoren zu prüfen.

11.1.8 Linearkombination von Vektoren

Ein Vektor {b}, der sich als Summe aus mehreren Vektoren

fv1g; fv2g; : : : ; fvng

gleicher Ordnung n mit den Konstanten a1 ¤ 0, a2 ¤ 0, an ¤ 0 gemäß

fbg D a1 � fv1g C a2x � fv2g C : : : C an � fvng

darstellen lässt, heißt Linearkombination der Vektoren {v}. Von linearer Unabhän-gigkeit spricht man, wenn die Gleichung

a1 � fv1g C a2 � fv2g C : : : C an � fvng D f0g

genau dann gilt, wenn a1 D a2 D : : : an D 0 ist. Beispiel: Zwei senkrecht aufeinan-der stehende Vektoren sind linear unabhängig. Zueinander parallele Vektoren (auchunterschiedlicher Größe) sind linear abhängig.

Page 7: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.2 Matrizen 315

11.2 Matrizen

Allgemein verknüpfen Matrizen lineare Beziehungen zwischen verschiedenen Grö-ßensystemen. Es ist deshalb zweckmäßig, die Matrix als selbständige mathemati-sche Größe aufzufassen. Um Matrizen und Vektoren gegenüber einfachen Zahlen-größen hervorzuheben, verwenden wir für sie folgende Schreibweise:

ŒA�m;n rechteckige Matrix der Ordnung m � nŒA�m;m quadratische Matrix der Ordnung mai;k Element in Zeile i und Spalte k der Matrix [A]fagm 1-spaltige Matrix ! Vektor, Ordnung mfagt transponierter Spaltenvektor, wird Zeilenvektor (a).n/ ZeilenvektorŒ �t transponierte MatrixŒ ��1 inverse Matrix

Das Skalarprodukt in Matrizenschreibweise ist z. B. fngt � fag, der transponier-te Spaltenvektor {n} wird zum Zeilenvektor (n) und damit das Skalarprodukt zu.n/ � fag.

Das Koeffizientenschema einer Matrix [A] von der Ordnung m � n, also m Zeilenund n Spalten, sieht folgendermaßen aus:

Die Größen aik sind die Elemente der Matrix. Außer dem Koeffizienten aik ist seinedurch den Doppelindex i,k festgelegte Stellung im Schema wesentlich, wobei stetsder erste Index die Zeile, der zweite die Spalte kennzeichnet.

Zwei Matrizen [Am;n] und [Bm;n] sind dann und nur dann gleich, wenn sie imTyp übereinstimmen und wenn alle Elemente ai;k D bi;k sind für alle i und k.

Wir kommen zurück auf das Skalarprodukt der beiden Vektoren {a} und {b}. Je-den Vektor kann man auch als einspaltige Matrix [m,1], oder als einzeilige Matrix[1,n] auffassen. Das Skalarprodukt SP berechnet sich nun als Matrizenmultiplika-tion mit folgendem Schema:

Page 8: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

316 11 Mathematisches Rüstzeug

Der Vektor {a} steht hier als einzeilige, der Vektor {b} als einspaltige Matrix. DasSkalarprodukt berechnet sich aus den Teilprodukten der Matrixkomponenten zu

SP D a1 � b1 C a2 � b2 C a3 � b3

Neben dieser skalaren Multiplikation der beiden Vektoren {a} und {b} gibt es einezweite Multiplikationsmöglichkeit, indem man {a} und {b} vertauscht:

Diese Multiplikation wird als „dyadisches Produkt“, die Ergebnismatrix als „dya-dische Matrix“ bezeichnet. Es ist offensichtlich, dass eine Ergebnisspalte sich ausjeder anderen mittels eines Faktors ak, jede Ergebniszeile sich aus jeder anderenmittels eines Faktors bi entwickeln lässt. In der Ergebnismatrix gibt es nur eineaussagefähige Multiplikation an einer beliebigen Matrixposition, alle anderen Er-gebnisse sind dazu proportional. Insofern hat eine dyadische Matrix nur einen sehrgeringen Informationsgehalt (sie hat den kleinsten überhaupt nur möglichen Rangr D 1). Beim Skalarprodukt muss die Ordnung der beiden Vektoren {a} und {b}stets gleich, beim dyadischen Produkt kann sie auch unterschiedlich sein.

11.2.1 Spezielle Matrizen

Page 9: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.2 Matrizen 317

Ein Vektor {a} mit den drei Komponenten a1, a2, a3 repräsentiert in der 3-dimen-sionalen Geometrie im Allgemeinen Vektorkomponenten oder Punktkoordinaten.Die in der Matrizenrechnung verwendeten Transformationen sind allerdings vonder Dimension (der Ordnung n) ganz unabhängig. Für die überschaubaren Fälle ist

n D 3 der gesamte Raum,n D 2 eine Ebene undn D 1 eine Gerade.

11.2.2 TransponierteMatrix

Vertauscht man von einer Matrix [A]m;n die Zeilen mit den entsprechenden Spalten,dann entsteht die zur Ausgangsmatrix transponierte Matrix [A]t

n;m. Bei quadrati-schen Matrizen entspricht dies einer Spiegelung an der Hauptdiagonalen. Bei einersymmetrischen Matrix ist das Transponieren wirkungslos, weil die die k-te Zeilemit der k-ten Spalte identisch ist.

.ŒA�t/t D ŒA�

.s � ŒA�/t D s � ŒA�t

.ŒA� C ŒB�/t D ŒA�t C ŒB�t

11.2.3 Summe und Differenz vonMatrizen

Die Summe oder Differenz zweier Matrizen kann nur mit typgleichen Matrizengebildet werden, d. h., beide Matrizen müssen gleiche Anzahl Zeilen und Spaltenhaben.

ŒC� D ŒA� ˙ ŒB�

ci;k D ai;k ˙ bi;k für alle i und k

ŒA� C ŒB� D ŒB� C ŒA�

.ŒA� C ŒB�/ C ŒC� D ŒA� C .ŒB� C ŒC�/

ŒA� C 0 D ŒA�

ŒA� � ŒA� D Œ0�

Page 10: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

318 11 Mathematisches Rüstzeug

11.2.4 Multiplikation Matrix mal Skalar

Auch hier erfolgt die Multiplikation elementweise. Summe und Differenz sowie dieSkalarmultiplikation sind vertauschbar.

ŒB� D s � ŒA�

bi;k D s � ai;k für alle i und k

.s C t/ � ŒA� D s � ŒA� C t � ŒA�

s � .ŒB� C ŒA�/ D s � ŒB� C s � ŒA�

s � .t � ŒA�/ D .s � t/ � ŒA�

11.2.5 Matrix mal Vektor

Dies ist der einfache Fall, dass eine der beiden Matrizen ein 1-spaltiger oder 1-zeiliger Vektor ist. Bei der zuvor dargestellten dyadischen Multiplikation warenstets nur jeweils ein Element von Zeile und Spalte am Ergebnis beteiligt. Hier wirdjedes Ergebniselement ci aus einem Skalarprodukt der Ordnung 4 ermittelt, wie inden Beispielen gezeigt:

Der Fall „Vektor mal Matrix“ ergibt sich einfach durch transponieren:

ŒA� � fbg D fcgfcgt D fbgt � ŒA�t

Page 11: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.2 Matrizen 319

11.2.6 Matrix mal Matrix

Das Produkt zweier Matrizen kann nur ermittelt werden, wenn die Spaltenanzahlder ersten Matrix mit der Zeilenanzahl der zweiten Matrix übereinstimmt. DieseNotwendigkeit wird als Verkettung bezeichnet. Zwei Matrizen müssen verkettbarsein, damit eine Multiplikation – in der vorgesehenen Reihenfolge – überhauptmöglich ist. Die Beispiele oben zeigen, dass

� beide Matrizen ŒA� und {b} bzw. fbgt und [A] zueinander passen müssen, damitdie Multiplikation möglich ist und

� die Vertauschung beider Matrizen offensichtlich ein anderes Ergebnis liefert.

Wir erinnern uns an das eingangs erläuterte Skalarprodukt und erkennen an denfarbig hinterlegten Spalten/Zeilen, dass z. B. das Element c1;3 der Ergebnismatrixein Skalarprodukt ist; in diesem Falle mit der Verkettungsordnung n D 4. Dies giltauch für alle anderen c;k der Ergebnismatrix.

Die beiden Matrizen [A] und [B] kann man zwar vertauschen, aber eine Matrizen-multiplikation ŒB� � ŒA� ist nicht möglich. Bezüglich einer Multiplikation (und jederanderen Matrizenoperation) „passen“ die vertauschten Matrizen nicht zueinander,denn die Verkettungsordnung von [B] ist 2, die von [A] jedoch 3, sodass folglichkorrekte Skalarprodukte nicht gebildet werden können:

Page 12: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

320 11 Mathematisches Rüstzeug

Das Ergebnis einer Matrizenmultiplikation ist wieder eine Matrix; ggf. die Nullma-trix. Dies auch dann, wenn beide Multiplikanden keine Nullmatrizen sind, z. B.:

Ganz allgemein berechnet sich das Produkt einer Matrix [A]m;n mit einer Matrix[B]n;p zur Matrix [C]m;p elementweise zu

Der Rechenaufwand für obige Matrizenmultiplikation setzt sich aus m � p Skalar-produkten und darin je n Multiplikationen und Additionen zusammen. Wegen derdreifachen Produkte sind Matrizenmultiplikationen rechenintensiv und mit Sorgfaltzu programmieren.

ŒA� � ŒB� ¤ ŒB� � ŒA�

s � .ŒA� � ŒB�/ D .s � ŒA�/ � ŒB�

.ŒA� C ŒB�/ � ŒC� D ŒA� � ŒC� C ŒB� � ŒC�

.ŒA� � ŒB�/ � ŒC� D ŒA� � .ŒB� � ŒC�/

.ŒA� � ŒB� � ŒC�/ D ŒC� � ŒB�t � ŒA�t

11.2.7 InverseMatrix

Die Matrix [A]�1 ist die inverse Matrix – auch Kehrmatrix genannt – zu [A], wennsie miteinander multipliziert die Einheitsmatrix ergibt: ŒA� � ŒA��1 D ŒE�. BeideMatrizen sind stets quadratisch.Beispiel:

Die Kehrmatrix der Transponierten ist gleich der Transponierten der Kehrmatrix.Bei symmetrischer Matrix ŒA� bleibt die Symmetrie auch in der Kehrmatrix ŒA��1

erhalten.

Page 13: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.2 Matrizen 321

ŒAt��1 D ŒA�1�t

.ŒA� � ŒB� � ŒC�/�1 D ŒC��1 � ŒB��1 � ŒA��1

Auf die numerische Ermittlung der Kehrmatrix wird nicht weiter eingegangen, son-dern auf die einschlägige Fachliteratur verwiesen.

11.2.8 OrthogonaleMatrix

Eine besondere Klasse von Matrizen in der Computergrafik sind orthogonale Ma-trizen, die zur Drehung und/oder Spiegelung von Objekten verwendet werden. Wiein Abschn. 11.2.5/6 schon erwähnt, werden die Elemente einer Ergebnismatrix ausSkalarprodukten gebildet. Das Skalarprodukt zweier Spaltenvektoren einer ortho-gonalen Matrix [A] liefert

fajgt � fakg D 0 für j ¤ k; D 1 für j D k:

Für die ganze Matrix gilt also

ŒA�t � ŒA� D ŒE�

Mit einer der Drehmatrizen von Kap. 7 sieht beispielsweise die Multiplikation wiefolgt aus und das Ergebnis ist leicht nachvollziehbar die Einheitsmatrix [E]:

Die formale Nachmultiplikation mit [A]�1 führt dann zu dem einfachen Zusam-menhang

ŒA�t D ŒA��1

der besagt, dass die Transponierte von [A] zugleich auch ihre Inverse ist. Anstattorthogonale 4*4-Transformationsmatrizen zu invertieren, verwendet man einfachderen Transponierte.

In MS-Visual-Studio ist die .NET Framework-Klassenbibliothek verfügbar. DieMatrixklasse enthält neben anderen Matrizenoperationen auch die Methode .In-vert(), die eine Matrix invertiert. Die Methoden der Computergrafik kommen al-lerdings ohne Inversion von Matrizen aus.

Page 14: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

322 11 Mathematisches Rüstzeug

Ergänzend sei noch auf eine Klippe in Zusammenhang mit der Matrizen-Algebrahingewiesen. Bei der Umformung von Matrizen-Termen wie etwa

ŒA� � ŒB� D ŒA� � ŒC�

darf man nicht der Versuchung erliegen, kurzerhand bei quadratischer Matrix ŒA�

beiderseits zu „kürzen“ bzw. formal mit der Inversen ŒA��1 vorzumultiplizieren

ŒA��1 � ŒA� � ŒB� D ŒA��1 � ŒA� � ŒC�

und dann wegen ŒA��1 � ŒA� D ŒE� zu folgern, dass ŒB� D ŒC� ist. Das folgendeBeispiel zeigt, dass sowohl ŒA� � ŒB� als auch ŒA� � ŒC� das gleiche Ergebnis liefert,obwohl ŒB� ¤ ŒC� ist.

Die Vormultiplikation mit ŒA��1 funktioniert hier schon deshalb nicht, weil ŒA� einesinguläre Matrix ist, und folglich wegen Det.ŒA�/ D 0 die Inverse gar nicht existiert.Im Beispiel ist eine Identität ŒB� D ŒC� nur mit einer nichtsingulären Matrix ŒA�

möglich. Beim Rechnen mit Matrizen hat man also auch darauf zu achten, dass dieStruktur der Matrix die gewünschte Transformation zulässt.

11.2.9 Multiplikationsschema für Matrizen

Die anschauliche Darstellung der Matrizenmultiplikation in den vorstehenden Bei-spielen sollte auch für hintereinander geschaltete Multiplikanden beibehalten wer-den, sie erhöht die Übersichtlichkeit und vermeidet Unverträglichkeiten bei derVerkettung.

Page 15: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 323

Beginnt man die Multiplikation mit der ersten Matrix [A], dann entwickelt sich dasSchema nach rechts, man sagt die Matrizen werden „nachmultipliziert“; beginntman mit der letzten Matrix [D], dann entwickelt sich das Schema nach unten unddie Matrizen werden „vormultipliziert“ (engl.: post- and pre-multiplication). DasErgebnis ist natürlich in beiden Fällen gleich, obwohl völlig andere Zwischener-gebnisse anfallen.

11.3 Spezielle Aufgaben

Diese Sammlung spezieller Aufgaben wird in der Computergrafik in vielerlei Ab-wandlung gebraucht, erhebt aber keinen Anspruch auf Vollständigkeit. Wir konzen-trieren uns dabei hauptsächlich auf die Darstellung in 3-dimensionalen kartesischenKoordinaten. Bei Betrachtungen über Ebenen verwenden wir Dreiecke (was Poly-gone nicht ausschließt) und bleiben bei der einfachen Mathematik.

11.3.1 Gerade durch zwei Punkte

Die Gleichung einer Gerade durch die Punkten P0 und P1 (Abb. 11.5) lautet:

x D x0 C .x1 � x0/ � t D x0 C t � gx

y D y0 C .y1 � y0/ � t D y0 C t � gy

z D z0 C .z1 � z0/ � t D z0 C t � gz

Hierin legt der Parameter t die Länge der Geraden fest und es ist ganz offensichtlich,wohin diese führt

bei t D 0 ! .x; y; z/ D .x0; y0; z0/ ! P0

t D 1 ! D .x1; y1; z1/ ! P1

t D 1 ! Gerade führt ins Unendliche;

t < 0 in die Gegenrichtung:

Abb. 11.5 Gerade durch zwei Punkte

Page 16: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

324 11 Mathematisches Rüstzeug

Verzichtet man auf die Anbindung an einen bestimmten Punkt, beispielsweise P0,dann gibt es beliebig viele parallele Geraden {g}, beispielsweise in einer Parallel-projektion.

11.3.2 Abstand Punkt–Gerade

Unter „Abstand“ ist immer der senkrechte Abstand zur GeradejEbene zu verstehen.Im 2-dimensionalen ist die Senkrechte zu einer Geraden leicht anzugeben, ist dochdie wesentliche Bedingung in der Ebene durch diese selbst gegeben. Im Raum gibtes dagegen beliebig viele Senkrechte auf einer Geraden, die allesamt in der Ebeneliegen, deren Normalenvektor die Gerade ist und deren zugehörige Ebene durch denPunkt P geht (Abb. 11.6).

Auf die Gerade {g} wird ein Einheitsvektor {n} gelegt aus fng D fgg=jgj undein beliebiger Hilfspunkt H. Das Vektorprodukt fsg D fhg � fng liefert mit jsj dieFläche des skizzierten Parallelogramms. Andrerseits ist diese Fläche schlicht LängeHöhe, hier wegen jnj D 1 folglich e D jsj D p

.s2x C s2

y C s2z/.

Beispiel:

Gelegentlich ist der Abstand einer Geraden vom Ursprung gefragt. Der Punkt Phat dann die Koordinaten P.0; 0; 0/ und der Hilfsvektor {h} ist einfach f�Hg. DerAbstand ergibt sich aus fsg D fng � f�Hg und schließlich wieder e D jsj Dp

.2xCs2

y C s2z/. Mit den Komponenten von {s} lässt sich die Gerade in den Ursprung

verschieben.

Abb. 11.6 Abstand Punkt–Gerade

Page 17: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 325

11.3.3 Schnitte zweier Kanten

Diese Aufgabe ist zu lösen für zwei Facetten auf der Projektionsebene, wobei jedeKante der einen mit jeder Kante der anderen Facette auf Schnitte zu untersuchenist.

Die Gleichung einer Geraden g0 in der Ebene mit den Punkten A0 und A1 lautetin Komponenten:

x D Ax0 C .Ax1 � Ax0/ � s D Ax0 C ax � s

y D Ay0 C .Ay1 � Ay0/ � s D Ay0 C ay � s

Hierin legt der Parameter s die Länge der Geraden fest und es ist

s D 0 ! A0

s D 1 ! A1

s > 1 ! über A1 hinaus;

s < 0 ! in Gegenrichtung über A0 hinaus:

Die Gleichung einer zweiten Geraden g1 sei:

x D Bx0 C .Bx1 � Bx0/ � t D Bx0 C bx � t

y D By0 C .By1 � By0/ � t D By0 C by � t

Die Koordinaten des Schnittpunkts dieser beiden Geraden sind x und y (sofern dieGeraden nicht parallel sind). Damit haben wir zwei Gleichungen mit den beidenUnbekannten s und t:

Ax0 C ax � s D Bx0 C bx � t

Ay0 C ay � s D By0 C by � t

Hieraus die Geradenparameter:

s D bx � .By0 � Ay0/ � by � .Bx0 � Ax0/=.ay � bx � by � ax/

t D ax � .By0 � Ay0/ � ay � .Bx0 � Ax0/=.ay � bx � by � ax/

In Abb. 11.7 schneiden sich zwar die Geraden g0 mit g1, aber wirklich von Interesseist nur der Fall, dass sich die Facettenkanten A0 ! A1 mit B0 ! B1 schneiden,das ist nicht der Fall. Folgende Konstellationen sind zu unterscheiden, wobei beideBedingungen erfüllt sein müssen:

Die Kanten schneiden sich wenn 0 < s < 1 und 0 < t < 1.

Kontakt eines Knotens mit einer Kante z. B.: 0 < s < 1 und t D 0j1.

Kein Schnitt s < 0js > 1 oder t < 0jt > 1

Page 18: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

326 11 Mathematisches Rüstzeug

Abb. 11.7 Schnitt zweier Kanten

Abb. 11.8 Windschiefe Geraden

11.3.4 Windschiefe Geraden

Wenn die beiden Richtungsvektoren zweier Geraden linear unabhängig sind,schneiden sich die beiden Geraden oder sie sind windschief. Es gibt keine Ebe-ne, die beide Geraden enthält (Abb. 11.8).

Ausgehend von den beiden Geraden fP1g C œ � fg1g und fP2g C � � fg2g geht esum drei Fragen:

� Sind die beiden Geraden parallel?Das ist der Fall wenn gilt: fg1g D f � fg2g mit einem beliebigen Faktor f; sieheAbschn. 11.1.

� Schneiden sich die Geraden?Wenn dies der Fall ist, gibt es einen gemeinsamen Schnittpunkt fSg, der beideGleichungen befriedigt:

fP1g C œS � fg1g D fP2 C �S � fg2gœS � fg1g � �S � fg2g D fP2g � fP1g

Geht man zu Koordinatengleichungen über, so erhält man ein Gleichungssystemmit drei Gleichungen für zwei Unbekannte œS und �S.

Page 19: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 327

Beispiel:

Das zugehörige Gleichungssystem ist:

x/œS � 3 � �S D �1

y/ � 2 � œS C 2 � �S D 0

z/ � œS � 2 � �S D �3

Aus der zweiten Gleichung folgt œS D �S. Dies in die dritte Gleichung einge-setzt liefert �S D 1 und damit œS D 1. Die nicht verwendete erste Gleichungwird mit diesen Werten nicht erfüllt und folglich haben die beiden Geraden kei-nen Schnittpunkt, sondern sind windschief.Löst man die ersten beiden Gleichungen nach œS und ��S auf, erhält man Infor-mationen über die Projektion beider Geraden auf die X-Y-Ebene. Selbst wennsich die projizierten Geraden schneiden, ist das kein Hinweis, dass sie sich auchin natura schneiden. Erst wenn die berechneten Werte auch die dritte Gleichungerfüllen, schneiden sich die Geraden und die Distanz D verschwindet. Lassensich nicht zwei von den drei Gleichungen auflösen, dann gibt es keinen Schnitt-punkt.

� Wie groß ist ggf. ihr Abstand?Der Abstand von zwei windschiefen Geraden ist die kürzest mögliche Verbin-dung beider Geraden, wobei die Verbindungsgerade auf beiden Geraden senk-recht steht. Ist der Abstand D 0 so schneiden sich beide Geraden; siehe oben.Die Reihenfolge ist also erst Schnittpunkt, dann ggf. Abstand (Abb. 11.9).Zur Berechnung des Abstands legt man z. B. durch die Gerade g2 eine Ebene unddreht diese um g2; bis sie parallel zur Geraden g1 liegt. Jeder beliebige Punktauf g1 hat nun den gleichen Abstand zu dieser Ebene. Von dieser kennen wirbereits zwei Richtungen: g2 in der Ebene und g1 parallel dazu, und damit istauch die Ebene selbst definiert als Vektorprodukt fsg D fg1g � fg2g. Diese dreiVektoren bilden wieder ein Rechtssystem in der Reihenfolge g1, g2, s. Um denAbstand berechnen zu können, ist fsg noch zu normieren gemäß fsg D fsg=jsj.Der Abstand D – sein zugehöriger Vektor – ist die Projektion des Differenzvek-tors fhg D fP2g � fP1g auf das normierte fsg und ergibt sich als Skalarproduktzu

D D .h/ � fsg=jsjDas Vorzeichen von D ist hier nicht weiter von Belang. Der ganze Ablauf ist wiebeim Abstand Punkt–Gerade nahezu identisch; siehe Abschn. 11.3.2. Mit den

Page 20: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

328 11 Mathematisches Rüstzeug

Abb. 11.9 Abstand zweier windschiefer Geraden

oben schon verwendeten Geraden berechnet sich deren Abstand zu:

Für die Berechnung des Abstands ist es also weder nötig, eine Ebene anzugeben,noch die Koordinaten der Verbindungspunkte auf g1 und g2 zu berechnen.

11.3.5 Ebenengleichungen

Es hat sich als zweckmäßig erwiesen, die Indizes von Knoten und Seiten an einemDreieck aufeinander abzustimmen: Die Seite Sk liegt dem Knoten Pk gegenüberwie in der Skizze verwendet.

Ebenengleichungen lassen sich auf unterschiedliche Weise bestimmen. EineMöglichkeit versteckte sich bereits im Vektorprodukt in Abschn. 11.1.6.

� Aus VektorproduktDer Normalenvektor fng eines Dreiecks zeigt an jedem Knoten und an jedemPunkt der Ebene in die gleiche Richtung (Abb. 11.10) und wird bestimmt alsVektorprodukt der Vektoren der beiden anliegenden Dreiecksseiten:

fng D fv3g � fv2gD �fv2g � fv3g

Page 21: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 329

Abb. 11.10 Normalenvektor

fng ist der nicht normierte Normalenvektor des Dreiecks. Seine Länge N ent-spricht der doppelten Dreiecksfläche:

N D 2F D p.n2

x C n2y C n2

z/

Das Vektorprodukt liefert einen Nullvektor, falls die drei Eckpunkte auf einerGeraden liegen, damit ist auch die Fläche 2F D 0 (ggf. als Prüfkriterium zuverwenden). Mit seiner Länge N wird fng zu einem Einheitsvektor normiert:

fng D 1=N � fng

Die Ebenengleichung ist allgemein:

A � x C B � y C C � z C D D 0

Die Koeffizienten .A; B; C/ entsprechen den drei Komponenten des Normalen-vektors fng der Ebene. Die Konstante D ermittelt man wie bei der Determinan-tenvariante.

� Aus DeterminanteEine Ebene durch drei Punkte kann mit einer Determinante wie folgt definiertwerden:

Diese Determinante aufgelöst und ein wenig umgestellt führt ebenfalls zur Ebe-nengleichung; hier durch den Punkt P1:

.x � x1/ � Œ.y2 � y1/ � .z3 � z1/ � .y3 � y1/ � .z2 � z1/�

C .y � y1/ � Œ.z2 � z1/ � .x3 � x1/ � .z3 � z1/ � .x2 � x1/�

C .z � z1/ � Œ.x2 � x1/ � .y3 � y1/ � .x3 � x1/ � .y2 � y1/� D 0

bzw.

.x � x1/ � A C .y � y1/ � B C .z � z1/ � C D 0

Page 22: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

330 11 Mathematisches Rüstzeug

Die Ebenenkonstanten A; B; C sind hier die Terme in den eckigen Klammern undzugleich wieder die Komponenten des Normalenvektors fng.A;B;C/. Sie könnenunmittelbar aus den Koordinaten von drei Knoten ermittelt werden, ohne sichGedanken zu machen über die Multiplikationsreihenfolge mit Vektoren. Auchhier dürfen die Knoten nicht auf einer Geraden liegen.

In beiden Varianten fehlt noch die Konstante D in der Ebenengleichung, der senk-rechte Abstand der Ebene zum Ursprung. D findet man einfach, indem man dieKoordinaten eines Knotens dieser Ebene in die Ebenengleichung einsetzt, z. B.P1.x; y; z/:

A � .x � P1x/ C B � .y � P1y/ C C � .z � P1z/ D 0

ausmultipliziert

A � x C B � y C C � z � .A � P1x C B � P1y C C � P1z/ D 0

folglich Konstante

D D �.A � P1x C B � P1y C C � P1z/ D �.P1/ � fng

Damit ist die Ebenengleichung vollständig:

A � x C B � y C C � z C D D 0

11.3.6 Schnittpunkt Gerademit Ebene

Der einfache Fall ist der, dass der Schnittpunkt einer Geraden mit einer der Koordi-natenebenen zu bestimmen ist. Eine beliebige Gerade hat die Gleichung

fMg C t � fdg mit fMg.Mx; My; Mz/

fdg.dx; dy; dz/

Die Komponenten ihres Schnittpunkts z. B. mit der XY-Ebene sind xe und ye mitze D 0:

Mx C t � dx D xe

My C t � dy D ye

Mz C t � dz D 0

Der Parameter t ergibt sich in diesem Fall aus der dritten Gleichung zu:

t D � Mz =dz

Page 23: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 331

Abb. 11.11 Schnittpunkt mitDreiecksebene

Hier sind zwei Sonderfälle zu beachten, bei denen es keinen Schnittpunkt gibt:

dz D 0; die Gerade liegt parallel zur XY-EbeneMz D 0; die XY-Ebene liegt in der Geraden:

Für t < 0 wird die XY-Ebene von der negativen Verlängerung der Geraden ge-schnitten. Für t > 0 schneidet die Gerade wie definiert und ihre Schnittkoordinatenwerden aus den beiden bisher nicht verwendeten Gleichungen ermittelt.

Liegt eine Ebene parallel zur XY-Ebene jedoch um ˙ze verschoben, ergibt sicht D .˙ze � Mz/=dz. Für dz D 0 liegt die Gerade parallel zur Ebene.

Im Normalfall wird der Schnittpunkt S einer Geraden mit einer beliebigen Ebenegesucht. In einer größeren Szenerie wird eine Gerade (ein Strahl) nahezu jede Ebeneschneiden. Ausgenommen die wenigen Fälle, bei der die Ebenennormale senkrechtauf der Geraden steht. Deren Skalarprodukt ist dann D 0 und die Ebene liegt parallelzur Geraden. Das Kernproblem liegt allerdings in der Frage, ob der Schnittpunkt mitder Dreiecksebene innerhalb des Dreiecks – der Facette – liegt (Abb. 11.11).

Variante 1Wir verwenden die Ebenengleichung durch den Knoten P1 .x; y; z/

A � .x � P1x/ C B � .y � P1y/ C C � .z � P1z/ D 0

Mit der Geradengleichung wie zuvor:

fMg C t � fdg mit fMg.Mx; My; Mz/

fdg.dx; dy; dz/

Wenn .x; y; z/ der Schnittpunkt ist, gilt dieser auch für die Geradenkoordinaten;diese in die Ebenengleichung eingesetzt

A � .Mx C t � dx � P1x/ C B � .My C t � dy � P1y/ C C � .Mz C t � dz � P1z/ D 0

oder auch

nx � .Mx C t � dx � P1x/ C ny � .My C t � dy � P1y/ C nz � .Mz C t � dz � P1z/ D 0

Page 24: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

332 11 Mathematisches Rüstzeug

wenn der Normalenvektor fng .A; B; C/ verwendet wird. Diese Gleichung aufgelöstnach t

liefert den Längenfaktor t für die Gerade fdg, womit dann die Schnittpunktkoordi-naten fSg D fMgC t �fdg bestimmt werden können. Das Skalarprodukt des Nennerslässt einige Rückschlüsse zu:

.d/ � fng D 0; die Gerade liegt parallel zur Ebene, kein Schnittpunkt;

< 0; Schnitt auf der Vorderseite;

> 0; Schnitt auf der Rückseite der Ebene:

Für t sind folgende Ergebnisse möglich, sofern .d/ � fng ¤ 0:

t D 0; die Gerade liegt in der Ebene

< 0; die Gerade fMg � t � fdg schneidet die Ebene von der Rückseite;

> 0; die Gerade fMg C t � fdg schneidet die Ebene von der Vorderseite;

Vorder- und Rückseite einer Ebene beziehen sich auf positive oder negative Wertevon f.x; y; z/.

Beispiel: Ebene durch drei Punkte P1–P3, geschnitten von Gerade g mit folgendenDaten.

Ebene durch drei Punkte:

Hierin kann man den konstanten Faktor 18 eliminieren und erhält die Ebenenglei-chung

7 � x C y � 7 � z C D D 0

Die Konstante D ergibt sich als Skalarprodukt aus �.P1/ � fng D �.5; 0; 10/ �f7; 1; �7g D C35.

Page 25: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 333

Abb. 11.12 Schnittpunkt in derEbene

Die Länge der Geraden, ausgehend von M bis zum Schnittpunkt S, wird be-stimmt vom Faktor t der Geradengleichung; dieser berechnet sich zu:

Die Koordinaten des Schnittpunktes S ermitteln wir aus der Geradengleichung:

Bleibt also noch zu klären, ob der Schnittpunkt mit der Dreiecksebene innerhalbdes Dreiecks liegt. Um dies festzustellen, projiziert man sowohl das Dreieck alsauch den Schnittpunkt auf eine der Koordinatenebenen. Man wählt zweckmäßigdie Ebene zur Projektion, die am ehesten parallel zum Dreieck liegt. Die zugehörigeProjektionsrichtung entspricht der betragsgrößten Komponente des Normalenvek-tors fng der Ebene. Wenn z. B. jnxj dies ist, projiziert man in X-Richtung auf dieYZ-Ebene, setzt die X-Koordinaten D 0 und hat damit ein ebenes Problem.

Diese Situation ist in Abb. 11.12 dargestellt. Der Hilfsvektor fhg (den wir ei-gentlich gar nicht benötigen) geht vom Knoten P1 zum Schnittpunkt S und istzusammengesetzt aus

fhg D fv2g C fv3gmit

fv2g D œ � fP3 � P1g D œ � fd2gfv3g D � � fP2 � P1g D � � fd3g

Die Längen der Vektoren fvjg bis zu den Schnittpunkten S0 bzw. S00 werden alsSchnittpunkt zweier Geraden wie folgt ermittelt, z. B. für S0:

g1 D .P1/ C � � fd3gg2 D .S/ � œ � fd2g .entgegen fd2g!!/

Page 26: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

334 11 Mathematisches Rüstzeug

für die Schnittkoordinaten

.P1/ C � � fd3g D .S/ � œ � fd2g

diese Vektorgleichung in Y-Z-Koordinaten

I: P1y C � � d3y D Sy � œ � d2y

II: P1z C � � d3z D Sz � œ � d2z

aufgelöst nach � und œ

� D Œd2z � .Sy � P1y/ � d2y � .Sz � P1z/�=2F

œ D Œd3y � .Sz � P1z/ � d3z � .Sy � P1y/�=2F

Der Nenner 2F ist die doppelte Dreiecksfläche, siehe Abschn. 11.3.5. Die beidenFaktoren œ und � legen die Längen der Vektoren fvjg fest, die zum SchnittpunktS führen. Zugleich geben sie Auskunft über die Lage des Schnittpunkts auf derDreiecksebene:

œ > 0; S liegt rechts von Vektor fd2g D P1 ! P3

� > 0; S liegt oberhalb von Vektor fd3g D P1 ! P2

œ C � � 1; S liegt links von P2 ! P3

Sind alle drei Bedingungen erfüllt, liegt S innerhalb des Dreiecks. Bei œ D 0 oder� D 0 liegt der Schnittpunkt in P1, œ D 1 Schnittpunkt in P3, � D 1 Schnittpunktin P2.

Variante 2

Eine Ebene ist ebenfalls eindeutig bestimmt durch zwei unabhängige Richtungenund ein Punkt, hier z. B. P1, der auf der Ebene liegt ! Punkt-Richtungsgleichung:

fsg D fP1g C � � fP2 � P1g C œ � fP3 � P1g

Anstatt der allgemeinen Koordinaten setzen wir gleich die Schnittkoordinaten fsgfür den Schnittpunkt S an. Die zwei noch unbekannten Konstanten � und œ sindjeweils Vielfache der Steigungen in den beiden Richtungen.

Die Gleichung der Geraden hat die gleichen Schnittkoordinaten

fsg D fMg C t � fdg

Der Faktor t bestimmt wieder die Länge der Geraden. Beide Schnittkoordinatengleichgesetzt und die Gleichung ein wenig umgestellt führt zu

fP2 � P1g�� C fP3 � P1g�œ � fdg�t D fMg � fP1g

Page 27: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 335

Diese Vektorgleichung aufgelöst in Komponenten ergibt ein lineares Gleichungs-system mit den drei Unbekannten �; œ; t, die man nach Vormultiplikation mit derinversen 3 � 3-Matrix bestimmt. (Die Inverse beschafft man sich mit der MethodeInvert() der Matrixklasse.)

Wir rechnen das gleiche Beispiel durch: Ebene durch drei Punkte P1; P2; P3 ge-schnitten von Gerade g mit folgenden Daten:

Mit diesen Zahlen sieht das Gleichungssystem folgendermaßen aus:

Die Vormultiplikation mit der Inversen (Faktor 1=18 ist vorgezogen) liefert die ge-suchten Konstanten:

Nun lassen sich die Koordinaten des Schnittpunktes S bestimmen, entweder mit derEbenen- oder der Geradengleichung:

Die Konstante t in der Geradengleichung wird für das Weitere nicht gebraucht.Anhand der Ebenenkonstanten � und œ lässt sich die Lage des Schnittpunkts –innerhalb oder außerhalb des Dreiecks – leicht angeben.

Aus der Punkt-Richtungsgleichung der Ebene ist ersichtlich, dass z. B. der Rich-tungsvektor fP2�P1g nicht durch einen Faktor � > 1 verlängert werden darf, sonstläge der Schnittpunkt schon jenseits von P2 und damit außerhalb des Dreiecks. Auchnegative Werte für � sind nicht zulässig, wenn der Schnittpunkt zwischen P2 und

Page 28: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

336 11 Mathematisches Rüstzeug

P1 liegen soll. Das Gleiche gilt analog für die Richtung fP3�P1g und Faktor œ. DerSchnittpunkt S liegt also nur dann innerhalb des Dreiecks, wenn gilt:

� C œ � 1 und 0 � � � 1 und 0 � œ � 1

Im obigen Beispiel mit � D �2;5 und œ D C2;5 liegt der Schnittpunkt mit derDreiecksebene außerhalb des Dreiecks.

Zur Lösung des Gleichungssystems ist nicht unbedingt die Inverse vonnöten,sondern es kann auch mit der Cramer’schen Regel berechnet werden. Hier ent-spricht v3 D P2 � P1, v2 D P3 � P1 und s D M � P1, wobei alle Variablen3-dimensionale Vektoren sind (die bei der Berechnung ohnehin gebraucht werden):

Noch effizienter kommt man zu einem Ergebnis, wenn man die Determinanten derMatrizen durch eine Kombination von Vektor- und Skalarprodukt schreibt

det.a; b; c/ D .a � b/ � c D �.a � c/ � b

und effizient umformt um möglichst wenig verschiedene Faktoren berechnen zumüssen:

mit p D d � v2 und q D s � v3. Mit den Daten des oben durchgerechneten Beispielsergeben sich natürlich die gleichen Werte:

Auch hier liegt der Schnittpunkt nur dann innerhalb des Dreiecks, wenn gilt: � Cœ � 1, sowie 0 � � � 1 und 0 � œ � 1.

11.3.7 Winkel zwischen Gerade und Ebene

Den Winkel � zwischen einer Geraden fag und dem Normalenvektor fng einerEbene bestimmt man einfach mit dem Skalarprodukt wie in Abschn. 11.1.5 an-gegeben. Da fng senkrecht auf der Ebene steht, ergibt sich der gesuchte Winkel zu’ D 90ı � �, bei normierten Vektoren also zu sin ’ D .n/ � fag.

Page 29: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 337

Abb. 11.13 Abstand Punkt–Ebene

11.3.8 Abstand Punkt zur Ebene

Legt man in Abschn. 11.3.6 die Gerade fdg parallel zur Normalen fng, dann stehtnatürlich auch fdg senkrecht auf der Ebene und entspricht der Strecke M ! S.fdg ist der senkrechte (kürzeste) Abstand von M zur Ebene. Der weitere Ablauf istanalog wie in Abschn. 11.3.6. Hier sei der Vektor fdg D t � fng ein Vielfaches vonfng, wobei fng bereits normiert ist (Abb. 11.13).

Wir verwenden wieder die Ebenengleichung durch den Knoten P1

nx � .x � P1x/ C ny � .y � P1y/ C nz � .z � P1z/ D 0

Die Koordinaten von fSg sind fMg C fdg, diese eingesetzt

nx � .Mx C dx � P1x/ C ny � .My C dy � P1y/ C nz � .Mz C dz � P1z/ D 0

nx � dx C ny � dy C nz � dz D �nx � .Mx � P1x/ � ny � .My � P1y/ � nz � .Mz � P1z/

.n/ � fdg D �.M � P1/ � fng .als Skalarprodukt/

Bei fdg D t � fng:t � .n/ � fng D �.M � P1/ � fng

Das Skalarprodukt des Normalenvektors mit sich selbst ist D 1 und folglich istt D D:

D D �.M � P1/ � fngDer Abstand D ist die Projektion des Differenzvektors fMg � fP1g auf die Normalefng. D ist positiv, wenn Ursprung und M auf verschiedenen Seiten der Ebene liegen,andernfalls ist D negativ.

Mit den gleichen Daten wie im vorigen Beispiel ist fng mit dem Faktor 1=p

99

zu normieren. Damit berechnet sich der Abstand von M zur Ebene zu:

Page 30: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

338 11 Mathematisches Rüstzeug

Abb. 11.14 An einer Facettereflektierte Gerade

11.3.9 Reflektierte Gerade an einer Facette

Diese Aufgabe tritt auf bei der Verfolgung von an Facetten reflektierten Strahlen.Diese werden wie beliebig lange Vektoren behandelt, die ihren Ursprung auf derFacette haben, gleichbedeutend mit dem Schnittpunkt des ankommenden Strahlsmit der Facettenebene (Abb. 11.14).

Zuerst ist abzuklären, ob der Strahl die Facettenebene überhaupt trifft – in all-gemeiner Lage wird das immer der Fall sein – und ggf. interessiert weiter, ob derSchnittpunkt innerhalb der Facette liegt; siehe Abschn. 11.3.6.

Die Normale, der ankommende und der reflektierte Strahl liegen in einer Ebe-ne. Diese wird gebildet aus dem Vektor fgg des Strahls und dem Normalenvektorfng der Facette, geht durch den Reflektionspunkt R und steht damit senkrecht aufder Ebene. Den Fußpunkt F findet man als Senkrechte von P auf die Facettenebene(ggf. auch außerhalb der Facette). Die Abstände P ! F bzw. F ! P0 zum Spie-gelbild von P sind gleich. Der Schnittpunkt der Geraden fgg mit der Facette ist derReflexionspunkt R. Die reflektierte Gerade frg wird gebildet von P0 nach R und hatihren Ursprung in R. Beispiel:

Die Gleichung der Senkrechten P ! F ist mit dem Normalenvektor fng:

Dies in die Ebenengleichung eingesetzt und nach t aufgelöst liefert t D �3 für denFußpunkt F. Um die Senkrechte bis P0 zu verlängern, sind 2 � t in die Geradenglei-chung einzusetzen, also t D �6. Damit sind die Koordinaten von P0 .�7; 17; 13/.

Der Reflektionspunkt R ist der Schnittpunkt von fgg mit der Ebene. Die Ko-ordinaten von fgg in die Ebenengleichung eingesetzt liefert t D 2, und damit die

Page 31: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 339

Koordinaten von R .�7; 7; 7/. Die reflektierte Gerade fP0 ! Rg hat damit die Glei-chung

Wenn es nur auf die Richtung des an der Ebene reflektierten Strahls ankommt, solässt sich diese an der Skizze ablesen:

frg D fgg � 2 � fsg

mitfsg D fng� cos.®/

Für cos.®/ verwenden wir das Skalarprodukt aus .n/ � fgg und setzen ein:

frg D fgg � 2 � fng�..n/ � fgg/

Die Zahlenrechnung liefert mit den gleichen Daten wie oben und normierten Vek-toren für

fng D .1; �3; �2/ ! .0;26726 �0;80178 �0;53452/

fgg D .�3; 4; 3/ ! .�0;51450 0;68600 0;51450/

das Skalarprodukt zu �0;962534 und damit die Richtung des reflektierten Strahls

11.3.10 Interpolationen amDreieck

Bei einer zusammenhängenden gekrümmten Fläche, die in Dreiecke aufgelöst ist,existiert an jedem Knoten für jedes angrenzende Dreieck ein anderer Normalen-vektor. Abhängig von der Krümmung sind deren Richtungsunterschiede mehr oderweniger groß (Abb. 11.15).

Bei Freiformflächen dagegen kann man für jede Stützstelle (jeder Knoten ei-ner Facette) den Normalenvektor der Tangentialebene bestimmen und erhält so dreizwar „exakte“, aber unterschiedliche Normalenvektoren für jeden Knoten einer Fa-cette (Abb. 11.16).

Wenn Daten der Tangentialebene nicht verfügbar sind, werden alle an einemKnoten angrenzenden Normalenvektoren gemittelt, auch dies führt zu drei unter-schiedlichen Vektoren an einem Dreieck. Programmtechnisch speichert man bei den„einfachen“ Verfahren nur einen Normalenvektor pro Facette, bei den leistungsfä-higen jedoch einen für jeden Knoten als Mittelwert aus den angrenzenden Facetten.

Page 32: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

340 11 Mathematisches Rüstzeug

Abb. 11.15 Zusammenhängende gekrümmte Fläche

Abb. 11.16 Facette einer Freiformfläche

Abb. 11.17 Natürliche Dreieckskoor-dinaten

Für jeden (Bild-)Punkt eines Dreiecks ist deshalb die Interpolation der drei unter-schiedlichen Normalenvektoren erforderlich. Besonders hilfreich sind dabei „natür-liche“ Dreieckskoordinaten (gleichbedeutend mit „baryzentrischen“ Koordinaten),mit denen das Dreieck beschrieben wird (Abb. 11.17).

Ein beliebiger Punkt P innerhalb des Dreiecks teilt dessen Gesamtfläche auf indrei Teilflächen Fk wie dargestellt. Die Quotienten der Teilflächen zur Gesamtfläche

•k D Fk=F

sind die natürlichen Koordinaten •k und es gilt †•k D 1. Ein Wertetripel (•1; •2; •3)mit Summe D 1 bestimmt die Lage eines Punkts P im Dreieck eindeutig. Diedrei Knoten des Dreiecks haben damit die natürlichen Koordinaten P1.1; 0; 0/,P2.0; 1; 0/ und P3.0; 0; 1/.

Den Zusammenhang zwischen den kartesischen Koordinaten x; y des Punkts Pmit seinen natürlichen Dreieckskoordinaten •1, •2, •3 lässt sich über die Flächenbe-

Page 33: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

11.3 Spezielle Aufgaben 341

rechnung der Teildreiecke herstellen:

Entwickelt man die Determinanten jeweils nach der ersten Zeile, so ergeben sichdie Teilflächen und damit auch die natürlichen Koordinaten zu

•1 D Œ.x2y3 � x3y2/ C x.y2 � y3/ C y.x3 � x2/�=2F

•2 D Œ.x3y1 � x1y3/ C x.y3 � y1/ C y.x1 � x3/�=2F

•3 D Œ.x1y2 � x2y1/ C x.y1 � y2/ C y.x2 � x1/�=2F

2F ist hierin die doppelte Dreiecksfläche, wie wir sie schon zuvor verwendet haben.Aus zwei beliebigen dieser drei Gleichungen unter Beachtung von †•k D 1 lassensich rückwärts wieder die x-y-Koordinaten bestimmen zu

x D x1•1 C x2•2 C x3•3

y D y1•1 C y2•2 C y3•3

Für einen beliebigen Punkt P.x; y/ innerhalb des Dreiecks erhält man dessen Nor-malenvektor, indem man die drei Normalenvektoren der Dreiecksknoten im Ver-hältnis der natürlichen Koordinaten gewichtet

fnPg D •1fn1g C •2fn2g C •3fn3g

Für Schattierungs- und Beleuchtungseffekte ermöglicht diese Methode, den Ein-druck einer gekrümmten Fläche näherungsweise auch mit einem ebenen Dreieckdarzustellen.

Die Aufgabe „Schnittpunkt innerhalb Dreieck“ in Abschn. 11.3.6 kann vorteil-haft auch mit den natürlichen Dreieckskoordinaten bearbeitet werden. Man proji-ziert wieder sowohl Dreieck als auch Schnittpunkt auf eine der Koordinatenebenen,die am ehesten parallel zum Dreieck liegt, und ermittelt die Gesamtfläche F desDreiecks und die Flächen Fi der Teildreiecke.

Je nachdem wie die Flächen ermittelt werden, sind zwei Möglichkeiten gegeben:

� Werden die Flächen über die Seitenlängen ermittelt, dann sind alle (Teil)-Flächenpositiv. Der Schnittpunkt S liegt nur dann im Dreieck, wenn gilt †Fk D F oderdamit gleichbedeutend †•k D 1.

� Durchläuft man die Ermittlung der Teilflächen zyklisch und berechnet die Flä-chen nach einer der obigen Formeln, z. B.

2 � F1 D .x2y3 � x3y2/ C x.y2 � y3/ C y.x3 � x2/;

Page 34: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

342 11 Mathematisches Rüstzeug

Abb. 11.18 Umfahrungssinn und Schnittpunkt S

dann ergibt sich für die Teilflächen Folgendes:

Fläche S liegt innerhalb außerhalb Dreieck:

F3 1–2–S ! g 1–2–S ! g positive

F1 2–3–S ! g positive Teilflächen 2–3–S ! g positive

F2 3–1–S ! g 3–1–S ! g negative Teilfläche

Links in Abb. 11.18 ist der Umfahrungssinn bei allen drei Teildreiecken gleich,und es gilt hier wie zuvor †Fk D F mit S im Inneren. Rechts in Abb. 11.18 liegtS außerhalb und es ändert sich für ein Dreieck der Umfahrungssinn gegenüberden beiden anderen Dreiecken mit der Folge, dass sich das Vorzeichen von F2

ändert. Verschiedenes Vorzeichen der Teilflächen ist ein erster Schalter dafür,dass S außerhalb liegt. Da die Vorzeichen der Teilflächen aber nicht weiter vonBelang sind, bildet man die natürlichen Koordinaten wie angegeben zu •k DFk=F. Bei †•k > 1 liegt der Punkt S außerhalb, bei †•k D 1 innerhalb desDreiecks. Ist ein •k D 0, liegt S auf einer Kante und die Teilung entsprichteiner linearen Interpolation entlang der Kante. Bei zwei •k D 0 liegt S in einemKnoten, trotzdem ist in beiden Fällen †•k D 1.

11.3.11 Transformation vonNormalenvektoren {n}

Die Szenerie wird normalerweise in einer Reihe von unterschiedlichen Viewpositio-nen betrachtet. Die zugehörigen Transformationen bearbeiten dabei nur die Knoten.Die Facetten bleiben unverändert und werden sozusagen in die neuen Positionen derKnoten eingehängt. Die schon berechneten Normalenvektoren sind danach nichtmehr gültig und müssen neu berechnet werden.

Die aufwendige Variante berechnet die Normalenvektoren völlig neu aus denneuen Knotenkoordinaten der Facetten. Es lässt sich aber auch eine Transformati-onsmatrix [M] finden, mit der die Normalenvektoren in die neue Projektion umge-rechnet werden und dann wieder zu den Facetten „passen“.

Ausgangspunkt ist hier das Skalarprodukt eines beliebigen Vektors fvg in derEbene und des Normalenvektors fng. Das Skalarprodukt ist dann für die Ausgangs-

Page 35: MathematischesRüstzeug 11 - KSTU › server › books › ger › ... · 11.1 Vektoren 313 Abb. 11.4 „Rechts“system der rechten Hand 11.1.6 Vektorprodukt Das vektorielle Produkt

Weiterführende Literatur 343

vektoren.v/ � fng D 0 und .v0/ � fn0g D 0

für die transformierten Vektoren/Matrizen fv0g und fn0g. Der neue Vektor .v0/ istdas Ergebnis der Projektion mit ŒTGV�

.v0/ D .v/ � ŒTGV� ! .v0/ � ŒTGV��1 D .v/

Gesucht ist die Matrix [M] die fng nach fn0g transformiert

.n0/ D .n/ � ŒM� ! .n0/ � ŒM��1 D .n/

transponiertŒM�1�t � .n0/t D .n/t D fng

Wir bilden abermals das Skalarprodukt mit (v) und fng.v0/ � ŒTGV��1 � ŒM�1�t � .n0/t D 0

Dies ist schon das Skalarprodukt der transformierten Vektoren .v0/ � .n0/t, wobeidas Matrizenprodukt im Mittelteil dieses Ausdrucks die Einheitsmatrix ist, also

ŒE� D ŒTGV��1 � ŒM�1�t

transponiertD ŒM�1� � ŒT�1

GV�t

Die gesuchte Transformationsmatrix, die Normalenvektoren in den zu ŒTGV� zuge-hörigen Vektorraum transformiert, ist damit

ŒM� D ŒT�1GV�t D ŒTt

GV��1

Wenn die Normalenvektoren bei den Knotendaten gespeichert sind, kann derenTransformation unmittelbar im Programmteil für die Projektion erfolgen. Sind siebei den Facetten gespeichert, hat man zwar weniger Transformationen, aber einenzusätzlichen Programmteil.

Weiterführende Literatur

Zurmühl, Falk: „Matrizen und ihre Anwendungen“, 7. Aufl., Springer 1997Gellrich, Gellrich: „Mathematik – Ein Lehr- und Übungsbuch“ Bd. 2, Harri Deutsch 2006Julius, Lohmann: „Mathematische Grundlagen, Seminar 3D-Computergrafik“, Humboldt-Univer-

sität Berlin, PDF-DateiA. Filler: „3D-Computergrafik . . . und die Mathematik dahinter“

(www.mathematik.hu-berlin.de/~filler/3D/)H. Klemenz: „Merkwürdiges im Dreieck“ (www.vsmp.ch/de/bulletins/no91/klemenz.pdf)