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: