Ich beschäftige mich derzeit mit der einfachen Simulation einiger Sternensysteme (dh einiger Zentralsterne und dann einiger Planeten mit möglicherweise Satelliten), um später ein weltraumbasiertes Strategiespiel zu ermöglichen (daher mit Raumschiffen, die sich bewegen). Dies sollte alles auf der Zeit basieren (daher unterscheidet sich der Zustand jedes Systems im Laufe der Zeit).
Ich habe ziemlich Probleme mit der Mathematik hinter diesem Thema, wie zum Beispiel:
- Ellipsen-bezogene Mathematik,
- Erstellen des Pfades von Planet A nach B unter Berücksichtigung der Zeit (die jeweiligen Positionen ändern sich im Laufe der Zeit) ...
Kennen Sie Ressourcen dafür? Es würde mir nichts ausmachen, Bücher darüber zu kaufen ...
Randnotiz: Wie man all diese Dinge anzeigt, ist zu diesem Zeitpunkt keine Frage, ich werde einfache Pläne dafür haben (im Grunde genommen bleiben wir bei 2D und einer "High-Level-Ansicht" ohne Details von Raumschiffen / Planeten, nur Markierungen).
quelle
Antworten:
Ich bin kein mathematisches Gehirn, aber meine SF-Lesung und Google führen mich zu dieser Seite über Orbitalmechanik . Es beginnt mit Erklärungen, denen ich folgen kann, und folgt mit Gleichungen, die ich nicht kann. Die Art der Bewegung, nach der ich gesucht habe, heißt Hohmann Transfer Orbit und verbraucht am wenigsten Kraftstoff.
quelle
Neben der Physik der Simulation eines Sternensystems gibt es noch ein weiteres Thema, über das Sie sich vielleicht Gedanken machen möchten.
Die Gleitkommapräzision wird wahrscheinlich ein Problem sein, abhängig davon, wie viel von einer "Simulation" es ist. Wenn Sie darüber nachdenken, ist die tatsächliche Entfernung zwischen einem Planeten und der Entfernung eines Objekts, das um einen dieser Planeten kreist, sehr groß. Der Versuch, sowohl einen entfernten Planeten als auch ein umlaufendes Objekt in derselben "Umgebung" zu simulieren, würde wahrscheinlich unter den Einschränkungen der Gleitkommagenauigkeit brechen.
http://www.floatingorigin.com/mirror/oneil_01.htm
quelle
Wie Jason oben erwähnt hat, werfen Sie einen Blick auf diese Webseite - sie geht ziemlich tief in die Orbitalmechanik ein ...
http://www.braeunig.us/space/orbmech.htm
Ich frage mich, ob Sie möglicherweise ein einfaches regelbasiertes Navigationssystem ausarbeiten können. Starten Sie das Fahrzeug einfach auf einem Vektor und lassen Sie es dann bei jedem Durchgang Ihrer Ereignisschleife die aktuelle Flugbahn in Bezug auf das Ziel überprüfen und eine Korrektur vornehmen.
Wenn es schwierig wird, müssen Sie berücksichtigen, was Sie die Motivationen des Raumschiffs nennen könnten. Hat es eine endliche Kraftstoffversorgung? Ist es besser, schneller dorthin zu gelangen oder weniger Kraftstoff zu verbrauchen? Ist die Geschwindigkeit, mit der Sie sich dem Ziel nähern, wichtig? Dh, kann es nur mit hoher Geschwindigkeit einfliegen oder muss es langsamer werden, um in die Umlaufbahn zu gelangen?
quelle
Müssen Sie das überhaupt lösen? Hohmann-Transferbahnen sind langsam - 1/2 der Umlaufzeit des Außenkörpers und erfordern auch eine korrekte Ausrichtung der Planeten, um zu funktionieren.
Möchten Sie die Spieler wirklich auf solche Bewegungen beschränken? Und wenn Sie das tun, verwenden Sie offensichtlich eine Art Sprungantrieb, um zu den anderen Sternensystemen zu gelangen - warum können Sie das nicht innerhalb eines Systems verwenden?
Wenn Sie ein kontinuierliches Schubsystem mit nicht trivialer Kraft haben, müssen Sie keine solchen ausgefallenen Orbitalberechnungen durchführen. Stattdessen:
1) Berechnen Sie die Geschwindigkeitsänderung, die zwischen den Körpern benötigt wird. Dies ist sowohl die Umlaufgeschwindigkeit als auch die Energie, die benötigt wird, um sich in die neue Umlaufbahn zu bewegen.
2) Berechnen Sie den Abstand zwischen A und B an ihren aktuellen Positionen.
3) Passen Sie dies an die in Teil 1 erforderliche Verbrennung an. Wenn Sie nach außen gehen, rechnen Sie am Anfang mit einer zusätzlichen Verbrennung für die Geschwindigkeitsänderung, wenn Sie mit der zusätzlichen Verbrennung beginnen, am Ende. Subtrahieren Sie diesen Abstand vom Abstand zwischen den Planeten und addieren Sie die benötigte Zeit zur Gesamtzeit.
4) Nehmen Sie den verbleibenden Abstand, teilen Sie ihn in zwei Hälften und berechnen Sie, wie lange Ihre Rakete dafür benötigt. Verdoppeln Sie das Ergebnis.
5) Addieren Sie die beteiligten Zeiten und geben Sie an, wo sich der Zielplanet nach dem Ende der Verbrennung befindet. Wenn es zu stark bewegt wird, verwenden Sie den neuen Standort des Planeten als Ziel und wiederholen Sie die Berechnungen. Dies wird schnell konvergieren.
Ja, dies entspricht nicht den NASA-Spezifikationen, ist aber für den Spieleinsatz ausreichend nah genug.
quelle
Lineare Interpolation nachschlagen. Sie können eine Position von Punkt A nach B entlang einer geraden Linie mithilfe einer Zeitfunktion aktualisieren.
Dieser Link könnte helfen.
quelle