kostenloser Webspace werbefrei: lima-city


Modell eines Universums

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    Also, ich brauche für ein Spiel eine Art Modell eines Universums. Es muss lediglich in Zahlen vorliegen, um die grafischen Sachen gehts hier garnicht.

    Also es muss erstmal eine Art dreidimenionales System gemacht werden, was auf Koordinaten basiert. Der Mittelpunkt ist dabei recht egal.
    Dann müssten Galaxien da sein. Dort müssten die Sonnen ja in einer gewissen Bewegung vorliegen, aufgrund der "Mitte" evtl. dem schwarzen Loch etc. sein. Außerdem müsste eine gewisse Gravitation herschen.
    Dann gibt es in den Galaxien Sonnensysteme. Da wäre einmal das Gravitationsfeld der Sonne (die zufällige Werte wie Ausdehnung(Volumen) und Masse und so weiter besitzt) und die Geschwindigkeiten der Planeten um in einer Ellipsenbahn zu bleiben. Diese Planeten wiederum müssten eine zufällige Masse Stoffzusammensetzung und Ausdehnung haben und ein daraus resultierendes Gravitationsfeld haben.

    Nun müsste es möglich sein innerhalb dieses Modelles ein Objekt vorher festgelegter Masse mit einer gewissen Kraft loszuschicken welches dann durch die Gravitation beeinflusst wird und gegebenenfalls müssten dann Berechnungen möglich sein, um herauszubekommen welche Beschleunigung gebraucht wird um den Kurs zu halten bzw müsste man auch berechnen können wie solch eine Masse von einem Planeten zu einem anderen kommt (ohne dabei mit irgendwas zu kollidieren) und welche Energie sie dazu braucht.
    Es soll sozusagen der Raumschiffverkehr sehr gut emuliert werden.

    Da mir dass alles als sehr viel Arbeit vorkommt die ich zwar vllt auch alleine schaffe aber sicher ewig brauche und ich auch nicht richtig weiß wo ich anfangen sollte, wollte ich um Hilfe bitten.

    Im vorraus schonmal: 1. JA, es soll so kompliziert sein und 2. es sind eher weniger Kenntnisse von Gravitation und so vorhanden (ich bin in der 11ten allgemeines Gymnasium) -> ich habe ein grundlegendes aber begrenztes Wissen zu Vektoren welche hier sicher erforderlich sind.

    Sollte noch etwas in dem Modell fehlen oder wichtig sein sind auch Tipps erwünscht.

    Schonmal danke.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g********e

    Habe vor Jahren aus ähnlichen Gründen mal nach einem Modell für die Erd-Entwicklung gesucht.

    Eigentlich müßte es an Universitäten und Forschungseinrichtungen so etwas geben. Und eigentlich sollte auch die Möglichkeit enthalten sein, bestimmte Ereignisse und Situationen zu simulieren.

    Versuch doch da mal Dein Glück.

    slan agus beannacht, Greenslade
  4. Die rechenkapazität der uns zur verfügung stehenden rechner würde wohl kaum genügen um das zu machen was du da vorhast.

    ich kann mir zwar vorstellen das es bei universitäten oder der nasa so etwas geben könnte (zumindest als annährung)aber ich glaubekaum das sowas (was ja in der erstellung sehr aufwändig wäre) frei zur verfügung gestellt würde.

    ich lasse mich aber gernverbessern, weil ich die idee interessant finde.
  5. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    fatfox schrieb:
    Die rechenkapazität der uns zur verfügung stehenden rechner würde wohl kaum genügen um das zu machen was du da vorhast.

    ich kann mir zwar vorstellen das es bei universitäten oder der nasa so etwas geben könnte (zumindest als annährung)aber ich glaubekaum das sowas (was ja in der erstellung sehr aufwändig wäre) frei zur verfügung gestellt würde.

    ich lasse mich aber gernverbessern, weil ich die idee interessant finde.


    DAs habe ich mir ja auch gedacht, aber für das Spiel müsste es ja nicht gleich ein ganzes Universum wie unseressein sondern nur etwas im kleinen Stil. Es geht da sowieso nicht um Aliens sondern nur um verschiedene Staaten in der Zukunft, die um die Vormacht kämpfen. Also Japan, USA usw.
  6. g********e

    Naja, Du könntest es DIr einfach machen... oder auch schwierig

    Früher gab es mal so Dinger - nannten sich Post-Spiele - die hatten mit den physikalischen Gegebenheiten nicht viel am Hut. Einfach eine fixe Sternenkarte und d´rauflos strategieren. Das wäre die leicht Variante.

    Die schwerere....
    Ich würde mit dem Modell eines Sonnensystems anfangen, da es sehr unwahrscheinlich ist, daß irgend etwas anderes außer Satelitten diesen Bereich jemals verläßt. Wenn Du ein System machst, bei dem die Parameter veränderbar sind, kannst Du aus einem Sonnensytem dann auch viele machen.
    Das nächste wäre dann wahrscheinlich ein Modell, welches die Sonnensysteme zueinander in Korelation setzt. usw.

    Als Kind habe ich mir mal ein "Generationenschiff" ausgedacht. Es sollte aber mit den damals technischen Möglichkeiten funktionieren (bei Antrieb und Energie habe ich versagt). Die Sternenkarten auf dem Schiff sollten - wie früher bei den ersten Seefahrern - auf dem Bekannten aufbauend, immer weitzer ergänzt werden, wie das Schiff in den Raum vorstößt

    Vieleicht ist das eine Möglichkeit für Dich, daß Du die Modelle erst nur für die unmittelbare Umgebung detailliert anlegst. Je weiter weg vom Sol-System, desto vager und ungenauer darf alles sein. Bei Bedarf (also mit der Expansion) ergänzt Du die Details.

    slan agus beannacht, Greenslade
  7. m******s

    Prinzipiell ist das gar nicht einmal sooooooooooooo schwer zu machen. Nur es hinreichend genau hinzubekommen....

    Ich würde mir folgendes vorstellen: Jeder Körper hat einen Ortsvektor Formel: \vec{x}, einen Geschwindigkeitsvektor Formel: \vec{v} und einen Beschleunigungsvektor Formel: \vec{a}. Nach jedem Zeitschritt (i.A. dürfte das ein Frame sein) berechnets du dann Formel: \Delta t, also die länge des Zeitschrittes.
    Anschließend machst du ne doppelte Schleife: Du setzt die neue Position des Objektes:
    Formel: \vec{x}^* = \vec{x} + \vec{v} \cdot \Delta t + \frac{1}{2} \vec{a} (\Delta t)^2
    die neue Geschwindigkeit:
    Formel: \vec{v}^* = \vec{v} + \vec{a} \Delta t
    und für die neue Beschleunigung machst du ne Schleife über alle Objekte, berechnest den Vektor Formel: \vec{r} = \vec{x'} - \vec{x} wobei Formel: \vec{x'} der Ortsvektor des gerade iterierten Objektes ist. Dann setzt du für den neuen Beschleunigungsvektor:
    Formel: \vec{a}^* = \vec{a} + \frac{G \cdot M}{\left\| \vec{r} \right\|^3} \cdot \vec{r}
    Wobei G die Gravitationskonstante und M die Masse des iterierten Objektes ist.

    Aus Sicht eines Mathematikers ist das Problem damit gelöst. Aus Sicht eines Informatikers far from. Folgende Probleme:
    1. Genauigkeit - Du hast nur begrenzte Genauigkeit, also treten vermutlich recht schnell Abweichungen auf...
    2. Geschwindigkeit - Die Implementierung dieser Methode dürfte relativ zeitintensiv werden, je nach Menge der Objekte vermutlich zu viel, für eine Echtzeitanimation
    3. Die Reihenfolge der Schritte - möglicherweise wird die Reihenfolge der Schritte, das teilweise sich die Beschleunigungen und Geschwindigkeiten der anderen Planeten schon geändert haben, obwohl sie es eignetlich noch nicht sollten wieder Ungenauigkeiten bringen. Das Problem lässt sich umgehen, indem man für den alten und den neuen Frame getrennte Vektoren speichert und für die Berechnungen jeweils die alten benutzt (ein wenig wie das Framebufferprinzip bei der Graifk).

    Ein Alternativer Ansatz, der glaub ich nicht wirklich schneller ist, könnte es sein, tatsächlich ein Kraftfeld auszurechnen, also den Raum aufzuteilen in ein Grid und für jeden Gitterpunkt dann einzeln zu berechnen wie groß die Gravitationswirkung an der Stelle ist und in welche Richtung sie zeigt. Ist aber glaub ich im Endeffekt das gleiche wie oben, nur noch mehr Berechnungen, wovon die meisten nicht nötig sind und ausserdem dürfte es auch keine Genauigkeit bringen.... also, das einzige, was vielleicht ein Vorteli ist, ist, dass so leichter andere Kräfte hinzugefügt werden könnten....

    Also, das Problem ist je nach Menge der Objekte recht schwierig. Sollten sie sich in nem überschaubaren Rahmen halten (<< 100 oder so) aber sicherlich lösbar...
  8. wenn man hinzu nimmt das aufgrud der zeit und ortsänderung (oder war es masse ?) bei annährender lichtgeschwindigkeit (mit der sich objekte in dem modell bewegen müssten um keine ewigen reisezeiten zu haben) haben wir das problem das du ja nur zeit oder ort (oder masse, ich weiß es nicht mehr) konstant halten kannst, das heist das entweder ort oder zeit des zielpunkts deines objektes ungenau berechnet werden .

    ich würde es ähnlich versuchen wie greenslade, mach dir ein modell das kleiner ist und adaptiere es, fang z.B. mit der erde unddem mond an geh zum sonnensystem dann zur galaxie (wobei du die anzahl der systeme in einer galaxie gering halten solltest wegen der rechenzeit)
  9. m******s

    fatfox schrieb:
    wenn man hinzu nimmt das aufgrud der zeit und ortsänderung (oder war es masse ?) bei annährender lichtgeschwindigkeit (mit der sich objekte in dem modell bewegen müssten um keine ewigen reisezeiten zu haben) haben wir das problem das du ja nur zeit oder ort (oder masse, ich weiß es nicht mehr) konstant halten kannst, das heist das entweder ort oder zeit des zielpunkts deines objektes ungenau berechnet werden .


    :lol::lol::lol::lol:

    Sorry, aber du verwechselst da glaub ich was. Was du suchst ist die Heisenbergsche Unschärferelation, das ist Quantenmechanik und auf solchen Skalen zu vernachlässigen :lol::lol::lol:

    [edit]

    Mir ist ne leichte Vereinfachung des Systems eingefallen. Du kannst schlicht vereinfachen: Ein Sonnensystem ist imemr eine Sonne Plus mehrere Planeten, die sich um diese Sonne auf Keplerbahnen bewegen. Die Bahnen lassen sich dann relativ leicht berechnen aus der Masse der Sonne und der Masse des jeweliigen Planeten. Man venachlässigt also die Anziehung der Planeten untereinander und verzichtet auf eine numerische Berechnung. Damit wird jeweils die Bewegung jedes Planeten im Sonnensystem zu einer einfachen Vektorgleichung (mit ein paar Faktoren und Sini und Kosini, aber nichts aufregendes). Dann betrachtest du die Sonnensysteme jeweils als Testteilchen im Galaxiesystem, ein Supermassives schwarzes Loch nimmt also jetzt die Rolle der Sonne ein und die Sonnensystem bilden die "Planeten". Wieder benutzt du einfache Keplerbahnen. Die Gesamtposition des Planeten ist dann seine Position relativ im Sonnensystem + die Position des Sonnensystems relativ zum Galaxiekern. Das ganze lässt sich nach oben erweitern (Galaxienhaufen, -superhaufen...). Da die Bahn der Raumschiffe nicht so einfahc ist, müsstest du die dann numerisch berechnen, nach obigem Verfahren. Allerdings musst du nur noch über - je nachdem auf welchem Maßstab du dich befindest - die Planeten bzw. Sonnensysteme iterieren und nur noch für die Schiffe, also deutlich wenige rRechenaufwand... theoretisch.

    Beitrag zuletzt geändert: 13.3.2009 18:19:22 von merovius
  10. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    @all
    Erstmal danke für die Hilfe. Ich hätte nicht gedacht, dass sich soviele so schnell daran beteiligen.

    @greenslade
    Naja es war halt nur so reizvoll eine möglichst realitätsnahe Simulation anzubieten, bei der es eben nicht nur aus einfachen Werten basiert sondern die Schiffe sich auch auf dem Weg begegnen können.
    Das heißt allerdings, dass man eine Entfernung der Schiffe von einander beachten muss und dazu braucht man ein dreidimensionales System.
    Dabei muss dann eben auch im vorraus klar sein, dass das Schiff nicht mit etwas kollidiert, also in die Nähe von einem Planeten oder Kometen oder so kommt und dann muss man ja die Gravitation beachten, falls das Schiff an einem Planeten vorbei will.

    @merovius
    Naja das klingt zwar ziemlich einfach aber werd wohl trotzdem noch n bissl grübeln müssen:lol:
    Also das Spiel wäre sowieso rundenbasiert was schonmal die Zeitabschnitte angeben würde. Allerdings müsste es ja trotzdem die dazuwischenliegenden Stellen berechnen damit der Punkt bekannt wird an dem das Schiff dann in der nächsten Runde rauskommt und das halt möglichst genau, was nunmal sehr viel Rechenleistung frisst.
    Das heißt während der Spieler am Zug ist verändert sich nichts und alles bleibt statisch. Nur wenn dann "Nächste Runde" geklickt wird muss berechnet werden wie das Bild in der nächsten Runde aussieht.

    Generell wie ist denn das mit der Zentrifugalkraft, wenn ein Raumschiff sozusagen in den Orbit eintritt?
    Kann man mit deiner Formel auch Kreisbewegungen berechnen?

    @ fatfox
    Ähm sry aber ich versteh nichtmal richtig, was du meinst.:lol:
    Von Bewegung nahe der Lichtgeschwindigkeit hab ich keine Ahnung und da diese konstante der Lichtgeschwindigkeit nicht wirklich gültig ist genauso wie Ortsangaben hier sowieso ganz eigenen Einheiten entsprechen glaub ich muss ich das nicht berücksichtigen.

    €dit: Rechtschreibung verbessert:lol:

    Beitrag zuletzt geändert: 13.3.2009 18:18:06 von reimann
  11. merovius schrieb:
    fatfox schrieb:
    wenn man hinzu nimmt das aufgrud der zeit und ortsänderung (oder war es masse ?) bei annährender lichtgeschwindigkeit (mit der sich objekte in dem modell bewegen müssten um keine ewigen reisezeiten zu haben) haben wir das problem das du ja nur zeit oder ort (oder masse, ich weiß es nicht mehr) konstant halten kannst, das heist das entweder ort oder zeit des zielpunkts deines objektes ungenau berechnet werden .


    :lol::lol::lol::lol:

    Sorry, aber du verwechselst da glaub ich was. Was du suchst ist die Heisenbergsche Unschärferelation, das ist Quantenmechanik und auf solchen Skalen zu vernachlässigen :lol::lol::lol:


    sorry, du hast natürlich recht *schäm*
  12. m******s

    Generell wie ist denn das mit der Zentrifugalkraft, wenn ein Raumschiff sozusagen in den Orbit eintritt?
    Kann man mit deiner Formel auch Kreisbewegungen berechnen?


    Es lässt sich Problemlos jede Kraft (Elektrostatik, Magnetismus, Zentripetalkraft...) mit einbeziehen. Dazu muss man nur die auf das testteilchen (Schiff) wirkende Kraft berechnen und die daraus resultierende Beschleunigung schlussendlich auf den Beschleunigungsvektor addieren. Das macht ja die Schönheit des Ansatzes aus ;)

    [edit] Übrigens: Mein Ansatz bedenkt keine relativistischen Effekte, die man für die Genauigkeit bei den skalen braucht. Das ist aber sehr fortgeschrittene sRT, oder sogar aRT, das bekomm ich auf die Schnelle nicht hin. So werden deine Werte für die Energien etc. schlicht nicht stimmen, sondern viel zu gering sein.

    Beitrag zuletzt geändert: 13.3.2009 18:25:28 von merovius
  13. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    merovius schrieb:
    Zentripetalkraft


    Sry mein Lehrer schimpft auch schon. Ich kann mir das nicht merken. >__<
    Hab nämlich grade Kreisbewegungen in Physik mit den ganzen lustigen Pfeilen. (Ich mein natürlich Vektoren -> Ich liebe es meinen Physiklehrer zu ärgern:lol:)

    merovius schrieb:
    Generell wie ist denn das mit der Zentrifugalkraft, wenn ein Raumschiff sozusagen in den Orbit eintritt?
    Kann man mit deiner Formel auch Kreisbewegungen berechnen?


    Es lässt sich Problemlos jede Kraft (Elektrostatik, Magnetismus, Zentripetalkraft...) mit einbeziehen. Dazu muss man nur die auf das testteilchen (Schiff) wirkende Kraft berechnen und die daraus resultierende Beschleunigung schlussendlich auf den Beschleunigungsvektor addieren. Das macht ja die Schönheit des Ansatzes aus ;)


    Das ist gut, da muss ich nurnoch rausfinden wie ichs anwenden kann.:lol:
  14. m******s

    Hm, naja, die Zentripetalkraft im Falle eines Raumschiffes im Orbit ist die Gravitation. die Zentrifugalkraft hat den gleichen Betrag nur die umgekehrte Richtung.
    Was alle anderen Kräfte angeht: Kraftgesetz raussuchen -> resultierende Kraft durch die Masse des Testteilchens teilen -> auf den schlussendlichen Beschleunigungsvektor addieren.
  15. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    merovius schrieb:
    Hm, naja, die Zentripetalkraft im Falle eines Raumschiffes im Orbit ist die Gravitation. die Zentrifugalkraft hat den gleichen Betrag nur die umgekehrte Richtung.
    Was alle anderen Kräfte angeht: Kraftgesetz raussuchen -> resultierende Kraft durch die Masse des Testteilchens teilen -> auf den schlussendlichen Beschleunigungsvektor addieren.


    Ok naja jezze muss ich mir halt noch einig werden wie ich das mit den Koordinaten mache.
    aber hat mir bis jetzt schon viel geholfen.:thumb:
  16. m******s

    Ok naja jezze muss ich mir halt noch einig werden wie ich das mit den Koordinaten mache.
    aber hat mir bis jetzt schon viel geholfen.:thumb:


    Dreidimensionale Vektoren, gemeinsam mit ner Implementierung von Addition und Skalarmultiplikation (also Multiplikation mit einem Skalar, wie es in der Schule genannt wird) und der Rest ist einfach nur: Jedes Objekt hat nen Ortsvektor. Das einzige, was du tatsächlich tun musst ist, den unrelativistischen "Mittelpunkt des Universums" festlegen. Den Rest dürftest du bei Java mitgeliefert haben.
  17. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    merovius schrieb:
    Ok naja jezze muss ich mir halt noch einig werden wie ich das mit den Koordinaten mache.
    aber hat mir bis jetzt schon viel geholfen.:thumb:


    Dreidimensionale Vektoren, gemeinsam mit ner Implementierung von Addition und Skalarmultiplikation (also Multiplikation mit einem Skalar, wie es in der Schule genannt wird) und der Rest ist einfach nur: Jedes Objekt hat nen Ortsvektor. Das einzige, was du tatsächlich tun musst ist, den unrelativistischen "Mittelpunkt des Universums" festlegen. Den Rest dürftest du bei Java mitgeliefert haben.


    Ok dann mach ich mich mal ans Werk.:lol:
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!