Step 3: Simulation der Erdbewegung

Werbung
2D-Spielewelten
Softwaretechnologie II
Christian Daum
Aufgabenstellung I: Simulation der Erdbewegung um die
Sonne (in Echtzeit bitteschön)
Ausgangssituation:
 Die Erde beschreibt eine kreisförmige Bahn um die Sonne auf einem „Einheitskreis“
 Daraus folgt ein konstanter Abstand zum Mittelpunkt – also zur Sonne;
 Die Sonnenbewegung selbst wird vernachlässigt
 Abstand Erde zur Sonne: ca. 150 Millionen km = ca. 1 astronomische Einheit (aU)
Vorgehensweise:


Step 1: Wahl des Koordinatensystems
a)
Dimensionen
b)
Koordinatenursprung
Step 2: Bestimmung der Erd- & Sonnenposition im Koordinatensystem durch Vektoren
[Exkurs Vektoren]

Step 3: Simulation der Erdbewegung
a)
Berechnung aller möglichen Varianten der Erdposition auf Ihrer Umlaufbahn
b)
Berechnung der Bewegungsrichtung der Erde
c)
Berechnung der Kräfte, welche die Erde auf ihrer Umlaufbahn halten
Step 1: Wahl des Koordinatensystems
a) Dimensionen:
Die Erde beschreibt ihre Umlaufbahn hier auf 1 Ebene
-> ergo ist ein 2D-Koordinatensystem zur Positionsbeschreibung ausreichend
b) Wahl des Ursprungs (0/0) des K-Systems:
Prinzipiell frei wählbar
-> Empfehlung: Die Erdbewegung sollte sich möglichst einfach beschreiben lassen
-> also Sonnenmittelpunkt als Ursprung (Kreisbahn -> konstanter Abstand Erde-Sonne
-> konstante Sonnenposition)
Step 2: Bestimmung der Erd- & Sonnenposition im
Koordinatensystem durch Vektoren
 Aktuelle Erdposition:
Durch Ortsvektor s definiert (auch „Abstandsvektor“ genannt)
(hier zugleich Einheitsvektor, da konstanter Abstand von 1 aU
zum Koordinatenursprung)
Ortsvektor der Erde ist zudem von der Erdbewegung – und
damit von der Zeit – abhängig (man nennt ihn deshalb auch
eine „Funktion der Zeit“ – s(t) ausgedrückt)
 Sonnenposition:
Ebenfalls durch einen Ortsvektor definiert
(hier zugleich jedoch Nullvektor, da der Ortsvektor der Sonne in
Ihrer Funktion als Koordinatenursprung eine Länge von 0 hat,
die sich nicht durch einen Pfeil visualisieren lässt)
s(t) = Ortsvektor
Erde
v(t) = Geschwindigkeitsvektor Erde
Wo Se grad sagen „Vektor“:
Exkurs Vektoren I
Definition Vektor:
 Eine Liste von Komponenten (reellen Zahlen, welche jeweils Dimensionen repräsentieren).
 Vektoren können geometrisch durch Pfeile repräsentiert werden. Die Komponenten eines Vektors
bestimmen dabei Länge & Richtung dieser Pfeile.
 Man bezeichnet Vektoren auch als „gerichtete Größen“ – im Gegensatz zu Skalaren (Zahlen)
als „ungerichteten Größen“.
 2 Schreibweisen für Vektoren (hier 2dimensional):
Unterscheidung durchaus bedeutsam:
DirectX arbeitet z.B. mit Zeilenvektoren...
Wo Se grad sagen „Vektor“:
Exkurs Vektoren II
Vektorarten:
 Ortsvektor:
Definiert den Ort eines Punktes
(die Vektorkomponenten werden hier mit Punktkoordinaten identifiziert)
 Einheitsvektor:
Vektor, dessen Betrag („Länge“) gleich 1 ist.
 Verbindungsvektor:
Verbindung zwischen zwei Punkten. Der Verbindungsvektor ist damit die Differenz zwischen
zwei Ortsvektoren. Der Abstand zweier Punkte ist der Betrag ihres Verbindungsvektors.
 Nullvektor:
Ein Vektor, dessen Komponenten alle 0 sind. Geometrisch betrachtet also der Verbindungsvektor
eines Punktes mit sich selbst. Als Ortsvektor interpretiert ist er damit deckungsgleich mit dem
Koordinatenursprung.
Wo Se grad sagen „Vektor“:
Exkurs Vektoren III
Addition & Subtraktion von Vektoren:
 Relevanz: Beispielsweise für die Berechnung eines Zielanflugvektors
 Sowohl Addition als auch Subtraktion von Vektoren erfolgen komponentenweise:
Wo Se grad sagen „Vektor“: Exkurs Vektoren IV
Berechnung von Skalarprodukten
 Skalarprodukt: Rechenoperation, die aus zwei Vektoren gleichen Typs einen Skalar generiert.
 Das Skalarprodukt gibt Auskunft über die relativen Richtungen zweier Vektoren a und b:
ab>0

a und b schließen einen spitzen Winkel ein
ab<0

a und b schließen einen stumpfen Winkel ein
ab=0

a und b stehen „normal“ aufeinander
a) Skalarprodukt der beiden zweikomponentigen Vektoren a = (a1, a2) und b = (b1, b2)
Formel: a b = a1b1 + a2b2
Alternative Notation (Buch):
b) Skalarprodukt eines Vektors s mit sich selbst (durch Multiplikation mit sich selbst):
Formel: s2 = x2 + y2
Alternative Notation (Buch):
c) Betrag („Länge”) eines Vektors s (durch Wurzel des Skalarproduktes eines Vektors mit sich
selbst):
Formel: | s | = (s12 + s22)1/2
Alternative Notation (Buch):
Wo Se grad sagen „Vektor“: Exkurs Vektoren V
Berechnung von Skalarprodukten – Merksätze & Beispiele:
a) Das Skalarprodukt zweier senkrechter (linear unabhängiger/orthogonaler) Vektoren ist 0!
Bsp.: Vektoren a = (0, 1) und b= (1, 0)
b) Das Skalarprodukt zweier paralleler (in gleiche Richtung zeigender) Vektoren ist gleich dem
Produkt
der Beträge der beiden Vektoren!
Bsp.: Vektoren a = (2, 0) und b= (3, 0)
c) Das Skalarprodukt zweier antiparalleler (in entgegengesetzte Richtung zeigende) Vektoren ist
gleich
dem Produkt der Beträge der beiden Vektoren mal –1!
Bsp.: Vektoren a = (-2, 0) und b= (3, 0)
Wo Se grad sagen „Vektor“: Exkurs Vektoren VI
Berechnung von Skalarprodukten – Fazit:
 Das Skalarprodukt ergibt sich aus der Multiplikation der Beträge der Vektoren sowie einem Faktor,
der sich aus dem Winkel Alpha ergibt, in welchem die Vektoren zueinander stehen.
Dieser Faktor ist …
… 1,
wenn dieser Winkel 0 ° beträgt,
(cos 0°
= 1)
… 0,
wenn er 90 ° ist,
(cos 90°
= 0)
… -1,
wenn er 180 ° beträgt.
 Die Kosinusfunktion erfüllt oben genannte Anforderungen
-> für ein beliebiges Skalarprodukt gilt also:
 Oder via DirectX-Funktion:
(cos 180° = -1)
Step 3: Simulation der Erdbewegung
a) Berechnung aller möglichen Varianten der Erdposition auf Ihrer Umlaufbahn
 Durch Umrechnung des (Einheits-)Ortsvektors der Erde in die sog. zweidimensionale
Polarkoordinatendarstellung (= Beschreibung eines Vektors durch einen Winkel sowie
den Vektorbetrag)
 Logo – mithilfe der trigonometrischen Funktionen!

a) x-Komponente des Einheitsvektors:
Kosinus des Winkels , der von diesem Vektor
& der x-Achse eingeschlossen ist
b) y-Komponente des Einheitsvektors:
Sinus desselben Winkels
 Vektor der Erde als Polarkoordinate ausgedrückt – Variante I
(wenn Ortsvektor zugleich Einheitsvektor – also mit konstantem Betrag):
 Vektor der Erde als Polarkoordinate ausgedrückt – Variante II
(wenn Ortvektor nicht Einheitsvektor – also mit variierendem/ beliebigem Betrag):
Step 3: Simulation der Erdbewegung
b) Berechnung der Bewegungsrichtung der Erde
 Ausgangssituation:
-> Die Bewegungsrichtung der Erde wird durch einen Vektor ausgedrückt -> v(t)
-> Die Länge dieses Vektors entspricht dem Geschwindigkeitsbetrag
 Problem/Aufgabe:
-> Die Geschwindigkeitsrichtung muss variieren, damit die Erde nicht aus der Umlaufbahn schießt
-> Nicht nur der Ortsvektor der Erde variiert also in der Zeit, sondern auch der ihm zugehörige
Winkel
-> Gesucht ist also sowohl eine Formel für den Ortsvektor als Funktion der Zeit als auch ein
Ausdruck
für den Winkel des Ortsvektors als Funktion der Zeit
Step 3: Simulation der Erdbewegung
b) Berechnung der Bewegungsrichtung der Erde
 Lösung: Mithilfe von Geschwindigkeitsvektoren & Winkelgeschwindigkeit
a) Berechnung der Winkelgeschwindigkeit w nach folgender Formel
(Winkelgeschwindigkeit notwendig für b) !)
-> wobei T = Umlaufzeit & 2 Pi = Umlaufbahn auf dem Einheitskreis
b) Berechnung des Winkels Alpha des Ortsvektors s als „Funktion der Zeit“ nach folgender Formel:
(Alpha(t) notwendig für c) !)
c) Berechnung der Ortsvektors s der Erde als Funktion der Zeit
Step 3: Simulation der Erdbewegung
c) Berechnung der Kräfte, welche die Erde auf ihrer Umlaufbahn halten
 Berechnung mithilfe von Beschleunigungs- & Kraftvektoren möglich
 Erläuterung der relevanten Kräfte am Bsp. eines Kettenkarussells:
FZF = Zentrifugalkraft
Auch Fliehkraft: nach außen wirkende Gegenkraft zur FZP
FZP = Zentripetalkraft
Über die Kette ausgeübte Kraft, welche den Sitz in der
Kreisbahn hält (zur Mitte strebende Kraft)
Zentripetalbeschleunigung
Durch FZP auf den Sitz ausgeübte Beschleunigungskraft
(ebenfalls zur Mitte strebende Kraft)
 Sowohl Kraft als auch Beschleunigung wirken also
in dieselbe Richtung!
V(t) = Geschwindigkeitsvektor
Bei reißender Kette fliegt der Sitz aufgrund seiner
Massenträgheit in genau diese Richtung aus der Bahn
Step 3: Simulation der Erdbewegung
c) Berechnung der Kräfte, welche die Erde auf ihrer Umlaufbahn halten
Zusammenspiel FZP & FZF
 Die beiden Kraftvektoren FZP & FZF zeigen zwar in entgegengesetzte
Richtungen – sind vom Vektorbetrag her jedoch identisch.
 Addiert man beide Vektoren, heben sich die Kräfte gegenseitig auf
(Ergebnis ist also ein Nullvektor)
 S. a. schwereloser Astronaut im Erdorbit: FZP & FZF heben sich
gegenseitig auf (die FZP wird hier natürlich nicht durch eine Kette
sondern durch Massenanziehungskraft zw. Astronaut & Erde verursacht)
 Bei der Erdumlaufbahn wird die FZP dementsprechend durch die
Massenanziehungskraft zw. Erde & Sonne verursacht
Kraftgesetz: Allgemeine Definition einer Kraft
 Wirkt eine Kraft F auf eine Masse m, wird diese um a Beschleunigt:
F
=m
*
Kraft
= Masse *
a
Beschleunigung
Step 3: Simulation der Erdbewegung
c) Berechnung der Kräfte, welche die Erde auf ihrer Umlaufbahn halten
Kraftgesetz der Gravitationskraft:
 rN = Einheitsrichtungsvektor
Definiert die Richtung der Kraft
• G = Gravitationskonstante:
Scheinbar frei wählbarer Zahlenwert; definiert die Einheit, in
welcher
die Kraft ausgedrückt werden soll – gleichsam die „Krafteinheit“
bzw.
„Kraftgröße“. Physiker hingegen müssen sich an eine
internationale
Konvention halten & die Kraftgröße mit der Einheit SI angeben:
SI-Einheit der Kraft:
SI-Einheit der Masse:
SI-Einheit der Beschleunigung:
Newton
Kilogramm
Meter / Quadratsekunde
Aufgabenstellung: Simulation eines Raumflugs
(wahrscheinlich auch in Echtzeit, bitteschön)
Das Raumschiff:
 Benötigt: Ein Drahtgittermodell des Raumschiffs zwecks 3dimensionaler Darstellung
 Alle Eckpunkte („Vertices“) unseres Raumschiffs werden in ein lokales Koordinatensystem
eingetragen & anschließend miteinander verbunden:
 Lokales Koordinatensystem (auch
Modellkoordinatensystem):
Nur für das jeweilige, in diesem Koordinatensystem erzeugte
Objekt von Bedeutung
 Weltkoordinatensystem:
Definiert die eigentliche Spielewelt, in welche später die
entsprechenden Objekte transformiert werden
Holla die Waldfee – das Raumschiff ist zu klein:
 Aufgabe: Der Schiffsrumpf soll skaliert werden
 Benötigt werden 2 Skalierungsfaktoren scaleX & scaleY
(analog zu den Dimensionen des Modellkoordinatensystems)
 „Regulärer Ortsvektor“ eines Schiffs-Vertex:
 Skalierter Ortsvektor eines Schiffs-Vertex:
Durch Multiplikation der Komponenten des Ortsvektors
mit den entsprechenden Skalierungsfaktoren, lässt sich der
Ortsvektor – & damit das Schiff – beliebig skalieren:
Ready to take off I
– Transformation des Raumschiffes in das Weltkoordinatensystem
 Unser Schiff soll im Weltkoordinatensystem einen Ortsvektor s haben:
 Im Modellkoordinatensystem hat unser Schiff – wie bereits gezeigt – ebenfalls einen Ortsvektor
(v):
 Transformation:
Durch Addition der Komponenten des Ortsvektors s im
Weltkoordinatensystem zu den Komponenten des
Ortsvektors v im Modellkoordinatensystem erfolgt
die Transformation des Schiffes in das Weltkoordinatensystem:
Ready to take off II
– Translationsbewegung des Schiffes
 Eine Schiffsbewegung entspricht einem in der Zeit variierenden Ortsvektor s:
 s(t)
Ortsvektor des Schiffs zum Zeitpunkt t
 s(t+Δt)
Ortsvektor des Schiffs zum Zeitpunkt t+Δ t
 Δs
Strecke, die das Schiff in der Zeitspanne Δ t
zurücklegt
(=Verschiebungsvektor)
 Formel zur Geschwindigkeitsberechnung:
 Formel zur Bewegungssimulation:
Ready to take off III
– Rotation des Schiffes (Nase auf Kurs bringen)
 Problem: Zwar bewegt sich das Schiff, allerdings sind dessen Vertices nicht korrekt ausgerichtet
 Lösung: Die Vertices müssen entsprechend des gewünschten Kurses um den Schiffsmittelpunkt
neu ausgerichtet werden – allerdings erneut im Modellkoordinatensystem
 Formeln zur Rotationsberechnung:
Folgende Spezialfälle müssen berücksichtigt werden:
 Dies leisten folgende Formeln:
Die Schiffsrotation erfolgt um die hier nicht dargestellte z-Achse
Welttransformation mit Matrizen
Exkurs Matrizen I
 Problem:
Die bisherigen Lösungsansätze zur Manipulation des Schiffes (skalieren, rotieren, verschieben..)
erfüllen zwar ihren Zweck, sind jedoch zu langsam, da sie zahlreiche Rechenoperationen erfordern.
 Lösung:
Mit Hilfe von Matrizen lassen sich sowohl Skalierung, Rotation als auch Translation in einem
Schritt erledigen.
Definition Matrix:
 Eine Anordnung von Zahlenwerten in Tabellenform mit m Zeilen und n Spalten.
 Diese Zeilen und Spalten werden auch als Zeilen- bzw. Spalten-Vektoren einer Matrix bezeichnet.
 Wie bei Vektoren spricht man bei den Einträgen einer Matrix von deren Komponenten
Exkurs Matrizen II: Die wichtigsten Matrizen & Regeln
Die Einheitsmatrix
 Definition:
Eine quadratische Matrix, deren Hauptdiagonale nur aus 1en besteht - alle restlichen Komponenten
bestehen ausschließlich aus 0en:
 Regel:
Eine Multiplikation eines Vektors oder einer Matrix mit einer Einheitsmatrix liefert als Ergebnis
immer den Vektor oder die Matrix selbst:
Multiplikation mit Vektor:
Multiplikation mit Matrix:
Exkurs Matrizen III: Die wichtigsten Matrizen & Regeln
Die Nullmatrix
 Definition:
Tataa – eine solche besteht ausschließlich aus 0en:
 Regel:
Eine Multiplikation eines Vektors oder einer Matrix mit einer Nullmatrix liefert als Ergebnis
immer einen Null-Vektor oder eine Null-Matrix:
Exkurs Matrizen IV: Die wichtigsten Matrizen & Regeln
Addition, Subtraktion & (Matrizen-)Multiplikation
 Addition & Subtraktion von Matrizen:
Funktionieren analog zur Addition & Subtraktion von Vektoren komponentenweise.
Auch hier gilt die Bedingung: Die Dimensionen müssen übereinstimmen!
 Multiplikation mit einem Skalar:
 Matrizenmultiplikation I:
Funktionsweise der Multiplikation analog zum Skalarprodukt zweier Vektoren
(logo: Ein Vektor ist letztlich nichts anderes als eine einzeilige bzw. einspaltige Matrix):
Multiplikationsregel für Matrizen: Komponentenweise Zeile mal Spalte!
Multiplizieren der Zeilen der
ersten Matrix mit den Spalten der
zweiten Matrix und anschließende
Addition der Produkte...
Exkurs Matrizen V: Die wichtigsten Matrizen & Regeln
Matrizenmultiplikation II
 Lässt sich die Regel zur Matrizenmultiplikation jedoch nicht problemlos anwenden,
ist die Operation auch nicht erlaubt:
 2maliges Anwenden der Regel erlaubt!
Bei vertauschten Faktoren ist die Regel jedoch
auch hier nicht mehr anwendbar!
Welttransformation mit Matrizen I
– Generierung einer Rotationsmatrix
 Gesucht sind in einem ersten Schritt jeweils Matrixgleichungen für die Rotation, Translation
und Skalierung unseres Schiffes.
 Diese drei Gleichungen werden in einem späteren Schritt zu 1 Matrixgleichung verjüngt, welche
alle das Raumschiff betreffenden Transformationsvorgänge in einer einzigen Rechenoperation
bewältigt und einen neuberechneten Vektor als Ergebnis liefert.
 Eine Matrixgleichung für die Rotationsberechnung könnte wie folgt aussehen:
Die beiden ursprünglichen Gleichungen ...
... werden zu einer Rotationsmatrix
Welttransformation mit Matrizen II
– Generierung einer Skalierungsmatrix
 Um eine Skalierungsmatrix zu generieren, kann man sich eine bereits beschriebene Eigenschaft der
Einheitsmatrix zu nutze machen:
Die Multiplikation eines Vektors mit einer Einheitsmatrix liefert als Ergebnis immer den Vektor selbst:
 Ursache: De facto handelt es sich hierbei um eine „Skalierung“ des Vektors um den Faktor 1.
Ergo lässt sich ein Vektor auf diese Weise beliebig skalieren, wenn der Faktor entsprechend
verändert wird. So betrachtet, wird die Einheitsmatrix gleichsam zur „Skalierungsmatrix“:
 Daraus folgt nachstehende Matrixgleichung zur Skalierung eines Vektors:
Dies mag auf den ersten Blick aufwendiger erscheinen, als die
bisherige Vorgehensweise zur Skalierung unseres Schiffes, ist als
vorbereitender Schritt jedoch notwendig, um später unsere
Eierlegendewollmilchsau – die omnipotente Matrixgleichung –
generieren zu können
Welttransformation mit Matrizen III
– Generierung einer Translationsmatrix
 Auf unglaublich verschlungenen, meinen bescheidenen Geist gänzlich sprengenden Pfaden wird aus ...
... über ...
... DAS:
 Nur soviel: Aus irgendwelchen Gründen wird hier eine weitere Dimension bzw. Komponente w
eingeführt, die „uns nicht weiter stören soll, da ihr Wert immer gleich eins bleibt“...
 Na gut, noch mehr: Dies sei notwendig, da die Verschiebungen Δx und Δy andernfalls abhängig
von xalt und yalt würden – Δx und Δy jedoch ganz im Gegenteil nicht von diesen abhängig seien.
Die Abhängigkeit wiederum finde sich in der Grundlage sowohl der Rotations- als auch der
Skalierungsmatrix, nämlich folgender Gleichung, wo eben jene (dort jedoch unproblematische)
Abhängigkeit zu xalt und yalt offensichtlich besteht:
Welttransformation mit Matrizen IV
– Generierung einer (ach was sag ich: der) Mega-Matrix
 Nun können die einzelnen Matrixgleichungen zusammengesetzt werden
1. Zusammenfügen von Skalierungs- & Rotationsmatrix
 Die Skalierungsmatrix
Die Rotationsmatrix
 Kombination & Multiplikation beider Gleichungen:
 Erweitern der nun kombinierten Rotations- & Skalierungsmatrix um 1 Dimension
(damit das Ganze auch zur sagenumrankten Translationsmatrix konform ist:)
Welttransformation mit Matrizen IV
– Generierung einer (ach was sag ich: der) Mega-Matrix
2. Zusammenfügen der kombinierten Rotations- & Skalierungsmatrix mit der Translationsmatrix
 Durch schrittweise „Multiplikation“ mit der Translationsmatrix:
(Prämisse: Die Translation soll erst nach vollzogener Rotation & Skalierung stattfinden)
 Schritt 3 erklärt sich (ggf.) wie folgt:
Auf eine Multiplikation der RotationsSkalierungsmatrix mit der Translationsmatrix
könne verzichtet werden – stattdessen genüge
es, lediglich die Verschiebungen Δx und Δy
hinzuzuaddieren. Ursprünglich findet sich
im Buch folgende „Endgleichung“, die ich
allerdings für einen Tippfehler halte, da dort
seltsamerweise
und
auftauchen:
x y
Welttransformation mit Matrizen IV
– Generierung einer (ach was sag ich: der) Mega-Matrix
2. Zusammenfügen der kombinierten Rotations- & Skalierungsmatrix mit der Translationsmatrix
 Attentione:
Die Reihenfolge der Matrizenmultiplikation bestimmt immer die Transformationsreihenfolge des
Vektors!
 Grund:
Die Transformationsmatrizen werden immer von rechts nach links abgearbeitet (zumindest bei
Spaltenvektoren) – dies gilt es bei der Aufstellung von Matrizengleichungen zu beachten!
 Beispiel für eine Matrixgleichung zur Transformation eines Spaltenvektors:
Ein Vektor soll zuerst durch die Matrix1, dann durch die Matrix2 und schließlich durch die Matrix3
transformiert werden – dann muss die zugehörige Formel (in Kurzform) lauten:
neuer Vektor = Matrix3 * Matrix2 * Matrix1 * alter Vektor
bzw. (auf unser Raumschiff bezogen):
neuer Vektor = Translation * Rotation * Skalierung * alter Vektor
Welttransformation mit Matrizen IV
– Generierung einer (ach was sag ich: der) Mega-Matrix
3. DirectX-Kompatibilität der Transformationsmatrix gewährleisten (durch Transponierung)
 Problem:
Unsere Transformationsmatrix für Rotation, Skalierung & Translation des Raumschiffes ist lediglich
zu Spaltenvektoren kompatibel –nicht jedoch zu den in DirectX verwendeten Zeilenvektoren!
 Lösung:
Transponieren („umstellen“) unserer Transformationsmatrix
 Beispiel für eine Transponierung:
 Diese Matrix soll dergestalt transponiert werden, dass sie auch bei der Multiplikation mit einem
Zeilenvektor dasselbe Ergebnis (wiederum in Zeilenform) liefert!
 Durch Anwendung der Multiplikationsregel für Matrizen (komponentenweise Zeile mal Spalte)
resultiert folgende (transponierte) Matrix als Lösung:
Welttransformation mit Matrizen IV
– Generierung einer (ach was sag ich: der) Mega-Matrix
3. DirectX-Kompatibilität der Transformationsmatrix gewährleisten (durch Transponierung)
 Erläuterung:
Beim direkten Vergleich der beiden Matrizen lässt sich erkennen, dass die Matrixelemente lediglich
um die Hauptdiagonale der Matrix gespiegelt wurden, die Hauptdiagonale selbst sich jedoch
nicht verändert hat:
 Transponierung der Transformationsmatrix
Wenn wird diese Erkenntnis auf unsere Transformationsmatrix anwenden, kommen wir zu folgendem,
nun DirectX-kompatiblen Ergebnis:
Welttransformation mit Matrizen IV
– Generierung einer (ach was sag ich: der) Mega-Matrix
3. DirectX-Kompatibilität der Transformationsmatrix gewährleisten (durch Transponierung)
 Reihenfolge der Matrizen ändern (Matrixgleichung zur Transformation eines Zeilenvektors):
Der Zeilenvektor steht bei der Multiplikation mit der Transformationsmatrix vor der Matrix – im
Gegensatz zum Spaltenvektor, welcher bisher hinter der Transformationsmatrix stand. Daher muss
nun auch die Reihenfolge der Matrizen geändert werden:
neuer Vektor = alter Vektor * Matrix1 * Matrix2 * Matrix3
bzw.
neuer Vektor = alter Vektor * Skalierung * Rotation * Translation
Anhang A - Kreisgleichung
Lösungsansatz Kreisgleichung:
s2  x2  y2
-> s entspricht dem Kreisradius bzw. dem Ortsvektor s = 1aU,
-> folglich ist s2 = 1aU2
-> x erstreckt sich von –1aU bis + 1aU,
Umstellen der Gleichung:
y  (s 2  x 2 )
-> Durch Umstellen der Gleichung lassen sich nun also jeweils die zugehörigen y-Koordinaten
ermitteln

-> Dieser Lösungsansatz ist jedoch zu kompliziert, da sich eigentlich nur der (Dreh-)Winkel
zwischen der y-Achse & dem Ortsvektor der Erde ändert!
-> Ergo (is klar: liegt doch auf der Hand!):
 2dimensionale Polarkoordinatendarstellung!
Anhang B - Kreisumfang
Formel Kreisumfang:
U  2 * r
Kreiszahl   3,1 41592654
Demnach beträgt der Umfang des Einheitskreises:
U  2 *1  6,283185307
(entspricht einem Winkel von 360 ° im Bogenmaß)
Anhang C - Normal-/Einheitsvektor
-> Vektor, dessen Betrag = 1 ist (s. Ortsvektor Erde)
-> Die Normierung erfolgt durch Division aller Komponenten eines Vektors mit dessen Betrag:
Herunterladen