Autor Beitrag
Frolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: So 28.04.13 14:04 
Hey,

ich möchte mich an eine neue Topic heranwagen. Da wir in unserem Physik - LK gerade Mehrkörperprobleme durchgenommen haben, würde ich gerne eine Simulation programmieren. In 2D hab ich das ganze schon gemacht, möchte aber nun die 3. Ebene einbringen. Dazu hab ich aber doch einige Fragen, weil ich damit eben noch nie gearbeitet habe.

So:

1. Wichtigste Frage: OpenGL oder DirectX? (Soll wenn möglich bitte auch unter Windows XP [auf Schulrechnern] funktionieren ohne dass ich etwas zusätzlich installieren müsste)
(ich habe keine Ahnung, ob auf XP eine gewisse DirectX Version vorinstalliert ist.
2. Ist es verhältnismäßig einfach ein paar "Kugeln" zu bewegen und denen eventuell Texturen zu geben?
3. Ist Zoomen und Schwenken der Kamera einfach implementiert?
4. Gibt es gut Tutorials (am besten C++) und wenn ja wo? :D

Danke
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 28.04.13 14:30 
Hi.

Zu den Fragen:
1. Beides geht. OpenGL ist in den einfachen Fixed-Pipeline Versionen üblicherweise auf jeder Maschine vorhanden. DirectX wird ebenso in der 9ner Version von allen modernen Systemen unterstützt( sogar auf XP ).
2. Ja. Besonders OpenGL(1.x oder 2.0) dürfte Dir hier am wenigsten Arbeit bereiten.
3. Ja. Auch hier ist OpenGL mittels GLUT eine sehr einfache Möglichkeit.
4. Google mal nach "Nehe". Da findest Du dann Windows OpenGL Tutorials. Für D3D9( die Grafikkomponente von DX9 ) solltest du Dir am besten die MSDN-Doku von MS angucken.

Gruß
Frolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: So 28.04.13 14:40 
Erstmal vielen Dank! Das scheinen gute Tuts zu sein, die werde ich durcharbeiten. Aber ich habe da schon eine Frage:

Ich arbeite mit dem C++ Builder XE3, und möchte mit der "Designer" arbeiten. Soll heißen, ich frage mich gerade, ob es Möglichkeiten gibt OpenGL in ein TPanel oder eine TPaintbox malen zu lassen. :)

Und wo finde ich denn sowas wie ein OpenGL SDK?
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 28.04.13 15:00 
Es gibt kein OpenGL SDK. Die Header liegen meist schon bei der IDE mit dabei. Ich kenne mich mit der VCL nicht mehr aus, aber wenn da jedes Objekt ein wirkliches Windows-Handle besitzt, kannst du da relativ einfach raufzeichnen. Mehr dazu findest du sicherlich im ersten oder zweiten Nehe Tutorial.
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: So 28.04.13 20:47 
user profile iconj.klugmann hat folgendes geschrieben Zum zitierten Posting springen:
1. Beides geht. OpenGL ist in den einfachen Fixed-Pipeline Versionen üblicherweise auf jeder Maschine vorhanden.

OpenGL läuft defintiv auf allen Systemen. Wenn später Lazarus eingesetzt werden soll, läuft das Programm sogar (mit Anpassungen) unter Linux oder Mac.
Es gibt vermutlich auch mehr Tutorials zur OpenGL im Web als zu Direct3D.
user profile iconj.klugmann hat folgendes geschrieben Zum zitierten Posting springen:
3. Ja. Auch hier ist OpenGL mittels GLUT eine sehr einfache Möglichkeit.

Du meinst freeGLUT. GLUT wird seit 1999 (?), also seit Ewigkeiten, nicht mehr weiter entwickelt.
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.04.13 08:18 
Zitat:
OpenGL läuft defintiv auf allen Systemen. Wenn später Lazarus eingesetzt werden soll, läuft das Programm sogar (mit Anpassungen) unter Linux oder Mac.
Es gibt vermutlich auch mehr Tutorials zur OpenGL im Web als zu Direct3D.

OpenGL ist auf vielen Low-End Laptop-Grafikchips ziemlich problematisch, insofern ist D3D schon eine Überlegung wert.

Zitat:
Du meinst freeGLUT. GLUT wird seit 1999 (?), also seit Ewigkeiten, nicht mehr weiter entwickelt.

Welche GLUT-Variante er nun nimmt, ist mir ziemlich gleichgültig.
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mo 29.04.13 22:07 
user profile iconj.klugmann hat folgendes geschrieben Zum zitierten Posting springen:
OpenGL ist auf vielen Low-End Laptop-Grafikchips ziemlich problematisch, insofern ist D3D schon eine Überlegung wert.
Sag's doch so wie's ist: es gibt Probleme mit Intel (die notorisch schlechte Qualität der GMA-Treiber ist so eine Art Running Gag) und den Linux-Opensourcetreibern. Alle anderen aus den letzten 5 Jahren laufen problemlos.
Grundsätzlich hast du bei gleichem Treiberstand mit OpenGL immer etwas mehr Funktionsumfang als mit dem altersmäßig passenden Direct3D. Von (theoretischer) Plattformunabhängigkeit mal gar nicht erst zu reden.

user profile iconj.klugmann hat folgendes geschrieben Zum zitierten Posting springen:
Welche GLUT-Variante er nun nimmt, ist mir ziemlich gleichgültig.
Wobei man sich sowas schnell selbst gebaut hat.

Im Endeffekt wird user profile iconFrolo ja hier auch eher nicht SpaceEngine bauen wollen, sondern schon ein paar Stufen drunter. Und dafür reicht OpenGL1.1 (wenn's sehr viele Körper werden, vielleicht noch 2.0 für VBOs) völlig aus, und das hat man nun wirklich auf allem was so in den letzten 10 Jahren verkauft wurde.

Für's erste bieten sich sicherlich die Tutorials 1-4, Kamera1, je nach Notwendigkeit ein paar der Mathematischen sowie der Artikel über Quadriken an.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Frolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mo 29.04.13 23:09 
Erstmal danke für die zahlreichen Antworten :) Im Grunde habt ihr recht. Ich bin schon froh, wenn sich 2-3 farbige Kugeln im 3 dimensionalen Raum bewegen. Weiter würde ich aber trotzdem gern irgendwann gehen.
Also totaler Noob stelle ich mir dann natürlich die Frage, zu dem Unterschied zwischen OpenGL1.1 - 3.0. Auch kann ich mir nicht vorstellen, wo ich die verschiedenen Versionen herunterladen kann, da ich eigentlich nichts gefunden habe und jetzt einfach die Header nehme, die bei XE3 dabei sind (ka welche OpenGL Version das jetzt ist). Ich dachte immer, dass ich für OpenGL nur ne DLL mitliefern muss und das Programm dann auf jedem PC läuft :)

Klärt mich ruhig mal auf, weil nicht nur OpenGL sondern auch 3D generell sind bei mir totales Neuland.

Also:

1. Wo bekomme ich verschiedenste Versionen von OpenGL her?
2. Sind das grundlegende Unterschiede (zB anderer Aufbau der Befehlsstrukturen) oder nur Erweiterungen zur erleichterten/erweiterte Bedienung?
3. Welche OpenGL Version hab ich bei XE3 dabei?
4. Wird OpenGL wie DirectX auf PCs als eine Art "Framework" installiert oder funktioniert das über DLLs?
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 29.04.13 23:44 
Hallo,
sieh mal hier nach www.daniel-schwamm.d...rials/opengl-planets

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Di 30.04.13 00:41 
user profile iconFrolo hat folgendes geschrieben Zum zitierten Posting springen:
Also totaler Noob stelle ich mir dann natürlich die Frage, zu dem Unterschied zwischen OpenGL1.1 - 3.0.
Funktionsumfang. OpenGL ist in Modulen aufgebaut ("Extensions" genannt), die mit der Zeit in den Core aufgenommen werden. Es kann also durchaus sein, dass eine Funktionalität, die in 3.0 im Core ist schon auf 2.0-er Treibern existierte - damals aber als Extension. Das Schöne ist, dass das für dich alles transparent ist. Du kannst einfach abfragen ob eine bestimmte Funktion da ist, und wenn das so ist kannst du sie auch nutzen - unabhängig von der Versionsnummer. Die Nummer sagt dir eigentlich nur, welcher Level komplett da ist. Ich habe auf meiner alten Möhre hier z.B. einige Funktionen aus OpenGL 3.2, obwohl nur 2.1 angegeben wird.
Wenn wir ganz technisch werden wollen, kann man am unterstützten OpenGL-Level auch ein bisschen was über die Hardware ablesen, da bestimmte Funktionen einfach Silizium erfordern, aber das bringt eigentlich nur was wenn man Grafikkarten vergleichen will.

user profile iconFrolo hat folgendes geschrieben Zum zitierten Posting springen:
und jetzt einfach die Header nehme, die bei XE3 dabei sind (ka welche OpenGL Version das jetzt ist)
Ich habe jetzt kein XE zur Hand, aber die mitgelieferten Header früherer Versionen waren hoffnungslos veraltet (Stand 2004 oder sowas). Das funktioniert dann zwar, aber alles was danach neu hinzukam kennen die dann halt nicht. Du willst dglOpenGL.pas, die ist so der "Industriestandard".

user profile iconFrolo hat folgendes geschrieben Zum zitierten Posting springen:
Ich dachte immer, dass ich für OpenGL nur ne DLL mitliefern muss und das Programm dann auf jedem PC läuft :)
Viel besser: Da muss nur ein Grafiktreiber installiert sein, und es läuft. Mitliefern musst du gar nix ;) Gut, außer natürlich du benutzt Dinge wie die (free)GLUT, die musst du dann natürlich mitliefern.

user profile iconFrolo hat folgendes geschrieben Zum zitierten Posting springen:
1. Wo bekomme ich verschiedenste Versionen von OpenGL her?
Siehe oben.

user profile iconFrolo hat folgendes geschrieben Zum zitierten Posting springen:
2. Sind das grundlegende Unterschiede (zB anderer Aufbau der Befehlsstrukturen) oder nur Erweiterungen zur erleichterten/erweiterte Bedienung?
Einziger wirklicher Unterschied ist die Fixed Function Pipeline (das, was die Tutorials machen) und die modernere Shader Pipeline (die einzige Variante für Mobilgeräte, Desktop unterstützt beides), aber das ist erstmal nichts wo man sich als Anfänger mit befassen muss. Erstere ist das, was die Tutorials benutzen. Ansonsten kommen wie gesagt mit jeder Version neue Funktionen hinzu, die du dann nutzen kannst es halt lässt.

@user profile iconMathematiker: Coole Sache! Nur eins... Pythagoras geht da eigentlich nicht. Der freie Raum ist nicht (überall) euklidisch, Einstein ist Schuld... :zwinker:

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Di 30.04.13 04:44 
Beachtlich, Dein Projekt! Ich würde mich nicht trauen, dies anzugehen.

Zitat:
@user profile iconMathematiker: Coole Sache! Nur eins... Pythagoras geht da eigentlich nicht. Der freie Raum ist nicht (überall) euklidisch, Einstein ist Schuld... :zwinker:


Hihi! Stelle mir jetzt schon die Gleichungssysteme vor. Werden sicher Hörsaalweite Tafelwände allein nur für die Erde füllen. Dazu die Sonne - ach die halten wir dann einfach fest - und den ollen Jupp. Aber der dreht wahrscheinlich seine Kreise, ohne um sich das Gewusel der kleinen kügelchen um ihn herum zu kümmern, typisch Gottheit.

Aber egal, ein Versuch ist es sicher Wert. Wenn schon 3D, mich welcher Detailgenauigkeit ist das Ganze denn geplant? Denn möglicherweise könnte diese letztlich das Ganze sehr kompliziert werden lassen, abseits von der Frage, wie es präsentiert wird.

Und die nächste Frage: Welche Anfangsbedingungen setzt Du voraus? Denn schon kleine Fehler darin können möglicherweise die ganze Simulation scheitern lassen.

Und die letzte Frage: Bei aller Betrachtung der Gleichungssysteme und Begebenheiten des solaren Systems. Der Schwerpunkt desselben liegt wegen der großen Masse der Sonne wohl irgendwo in der Sonne. Das bedeutet selbst im Euklidischen Raum bewegt sich das Ganze wohl irgendwie um diesen Schwerpunkt. Doch wie willst Du Abweichungen darstellen? Die Erde hat eine momentane Exentrizität von 0,017. In allen Darstellungen ist die Erdbahn in der maßstabsgetreuen Zeichnung fast ein Kreis. Das Gleiche gilt für die meisten Planeten (Ausnahme Merkur : 0,205). Auch deren Bahnen werden damit in der Darstellung fast Kreisbahnen ähneln.

Diese Fragen unabhängig von dem Grafik-Darstellungs-Problem, zu dem ich offen gesagt, nicht wirklich viel beitragen kann.

P.S.: Nice to have: Saturnringe, versteht sich, wenigstens angedeutet. Allerdings habe ich gesehen, die 4 Gasplaneten haben alle Ringe. Mehr oder weniger ausgeprägt. Und was machst Du mit den ca. 160 Monden im Sonnensystem? Die sind ja teilweise (Ganymed, Kallisto, Io, Europa, Titan) mindestens so groß wie der Erdmond. Ich sage ja, ein Projekt, dass ich mitr nie zutrauen würde.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.


Zuletzt bearbeitet von Tranx am Di 30.04.13 09:23, insgesamt 1-mal bearbeitet
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 30.04.13 08:00 
Hallo,
user profile iconTranx hat folgendes geschrieben Zum zitierten Posting springen:
Beachtlich, Dein Projekt! Ich würde mich nicht trauen, dies anzugehen.

:zustimm: Wenn es richtig gemacht werden soll, ist die Aufgabe nämlich extrem schwierig. Aber vielleicht kann er es ja, denn ...
user profile iconFrolo hat folgendes geschrieben Zum zitierten Posting springen:
Da wir in unserem Physik - LK gerade Mehrkörperprobleme durchgenommen haben, würde ich gerne eine Simulation programmieren.

Wow. In welchem LK Physik werden Mehrkörperprobleme "durchgenommen"? Mit Differentialgleichungen usw. oder ging es nur um das heute in der Schulphysik übliche "je-desto"-Gelaber :wink: :?:
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Nur eins... Pythagoras geht da eigentlich nicht. Der freie Raum ist nicht (überall) euklidisch, Einstein ist Schuld... :zwinker:

Selbstverständlich. Also wenn schon, dann bitte auch mit allgemeiner Relativitätstheorie. :lol: Und dann fragt er auch noch irgendwelche Server jede Sekunde ab, wie groß gegenwärtig die Hubble-Konstante und die mittlere Massendichte sind. :wink: Die ändern sich ab und zu mal.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: FinnO
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 30.04.13 09:20 
@Martok: Ok, ich sag's wie es ist:
* AMD/Intel Grafikchips sind egal unter welchem OS und mit welchem Treiber problematisch. Besonders Texturformate stellen hier das zentrale Problem dar.
* OSX ist *mist*e für OpenGL-Entwicklung. Sieht Punkt 1.
* Das Laufzeit-Verhalten der Intel-Karten passt überhaupt nicht zu den anderen mobilen Chips. Irgendwie braucht Intel an dieser Stelle immer etwas extra Zuwendung, damit die Anwendung bei denen auch richtig läuft...

@OP:
Am besten fährst du also mit Desktop-Grafikkarten. Ob du nun AMD oder NVidia nimmst, ist bei Low-End Grafikapplikationen ziemlich egal. Die Treiber sind unter den meisten Systemen auch ziemlich stabil.

Für diesen Beitrag haben gedankt: Martok
Frolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Di 30.04.13 23:58 
Erstmal vielen Dank :) Ich bin immoment gerade erst in der 11 und habe außer bei Schwingungen noch keine Differenzialgleichungen gelöst. Ich wollte unbedingt einmal eine Mehrkörpersimulation schreiben, weil man das laut meinem Physiklehrer nur simulieren kann.

In 2D habe ich das schon, hierbei berechne ich einfach bei jedem Tick die Kräfte, die jedes Objekt auf alle Objekte ausübt und bekomme so einfach generelle Beschleunigung für die jeweiligen Körper. Dadurch ergeben sich dann am Ende Bahnen. Ich denke jetzt einfach mal, dass mir ein großer Teil noch fehlt, aber rein physikalisch hat mein 2D Simulator schonmal funktioniert :) Mir ist auch klar, dass ich mich hier durchaus an etwas Großes heranwage, aber wer nicht wagt, der nicht gewinnt :)
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 764
Erhaltene Danke: 127



BeitragVerfasst: Mi 01.05.13 11:53 
In 3D ist die Simulationsmathematik nicht viel anders. Du zerlegst jetzt einfach die Geschwindigkeiten, die Positionen und die Kräfte in drei statt in zwei Komponenten.
Die größte Arbeit wird die Einarbeitung in die 3D-Darstellung sein.
Ich wünsche Dir viel Erfolg und würde gerne irgendwann einmal Dein fertiges Programm sehen.

ub60

PS: Vor etwa 20 Jahren (in Turbopascal und noch 2D) sah das bei mir so aus (fiktive Sonne, Planet und Mond):
simulation
Einloggen, um Attachments anzusehen!
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 01.05.13 21:14 
Hab genau sowas auch schonmal gemacht, damals als Facharbeit für den Physik Leistungskurs :) Hatte es erst in 2D mit DirectDraw. Bin dann aber auf OpenGL umgestiegen für 3D und muss sagen, hatte seit dem einige Projekte damit und nie Probleme (auch unter Linux z.B.).

Bei NeHe oder DGL gibt es super Tutorials. In 3D war es etwas knifflig, sich in das Konzept der Rotationen und Translationen reinzudenken (da hab ich heute noch manchmal Probleme). Zum Laden von Texturen gabs für Delphi auch fertige Klassen.
Einloggen, um Attachments anzusehen!
_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 01.05.13 22:55 
Hallo,
ich finde die Idee, das Sonnensystem in 3D darzustellen, sehr gut, frage mich aber, ob dies tatsächlich als Simulation derart berechnet werden soll, dass die Bewegungen der Körper durch ihre gravitativen Wirkungen untereinander ermittelt werden.

Ich will nicht unbedingt "klugscheißen", aber das wird wohl nichts Richtiges werden.
Derartige Berechnungen sind extrem und können nicht auf etwas Gravitationsgesetz reduziert werden. Da sind extrem komplizierte Differentalgleichungssysteme iterativ zu lösen. Das Mehrkörperproblem gehört nun einmal zu den schwierigsten und ungelösten Problemen der Himmelsmechanik.

Und selbst dann hat das Ergebnis nach einiger Laufzeit kaum noch etwas mit der Realität zu tun. Da Poincaré bewiesen hat, dass das Planetensystem ein chaotisches System ist, wirken sich schon kleinste Abweichungen der Anfangswerte nach relativ kurzer Zeit auf das Ergebnis deutlich aus.
Wer es nicht glaubt, kann ja das kleine Programm Doppelpendel (www.entwickler-ecke....ewtopic.php?t=111503) laden und laufen lassen. Obwohl das 2.Doppelpendel nur ein Tausendstel veränderte Energie hat, bewegen sich beide Pendel nach relativ kurzer Zeit völlig chaotisch.

Gleiches gilt für das Planetensystem. Weichen die Anfangswerte der Planeten (Masse, Radius, Umlaufzeit, Exzentrizität und Neigung der Bahn, Entfernung zu jedem anderen Körper, ...) nur etwas ab, erhält man jedesmal ein anderes System. Außerdem kommen noch nicht verhinderbare Rundungsprobleme hinzu.
Normalerweise werden die Planetenpositionen für solche Simulationen durch sehr, sehr umfangreiche Ephemeridenberechnung ermittelt.

Tut mir leid. Das war jetzt "Klugscheißen", aber es ist nun mal so.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Tranx
Frolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Do 02.05.13 01:16 
Hm ja, kann alles sein. Die Simulation funktioniert auch schon rein rechnerisch, nur die Ausgabe fehlt. Ich mache das auch nur in meiner Freizeit, weil ich meine "Physik-Kenntnisse" mal anwenden will :)
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Do 02.05.13 01:50 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Ich will nicht unbedingt "klugscheißen", aber das wird wohl nichts Richtiges werden.
Derartige Berechnungen sind extrem und können nicht auf etwas Gravitationsgesetz reduziert werden. Da sind extrem komplizierte Differentalgleichungssysteme iterativ zu lösen. Das Mehrkörperproblem gehört nun einmal zu den schwierigsten und ungelösten Problemen der Himmelsmechanik.

Und selbst dann hat das Ergebnis nach einiger Laufzeit kaum noch etwas mit der Realität zu tun. Da Poincaré bewiesen hat, dass das Planetensystem ein chaotisches System ist, wirken sich schon kleinste Abweichungen der Anfangswerte nach relativ kurzer Zeit auf das Ergebnis deutlich aus.


Naja, also sooo schlimm ist es dann auch wieder nicht. Ja, für akkurate Ergebnisse bei langen Zeiten braucht man verdammt hohe numerische Genauigkeiten (und damit: Rechenleistung). Wenn also "was richtiges" bedeutet, dass du bestimmen willst ob in 4 Mrd. Jahren gerade Tag oder Nacht ist, dann nein.

Aber was annehmbares bekommt man schon durchaus hin. Und dann reduziert es sich eben daraf das System iterativ mit Hilfe des (bekannten) Gravitationsgesetzes zu lösen.
Dann nimmt man sich einfach den Startwert und berechnet alle Abstände vektoriell. Danach berechnet man die Kräfte ebenfalls vektoriell. Die werden dann (vektoriell) summiert und entsprechend F=ma die Geschwindigkeit angepasst. Man braucht ein bisschen Vektorrechnung, aber dann geht das ganz gut.

Haben wir hier auch schon mal durch exzerziert: www.delphipraxis.net...-sonnensystemes.html

Man muss natürlich Kompromisse machen. Eine Simulation in Echtzeit bringt nix. Und maßstäbliche Anzeige kann man ebenso vergessen. Und je größer die Zeitschritte werden, desto früher kommt Mist 'raus. Wenn man jetzt nicht gerade eine Physik-Masterarbeit schreiben will, sollte das ganze auf einem Heimrechner problemlos realisierbar sein.
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Do 02.05.13 08:59 
Hallo,
user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Naja, also sooo schlimm ist es dann auch wieder nicht. Ja, für akkurate Ergebnisse bei langen Zeiten braucht man verdammt hohe numerische Genauigkeiten (und damit: Rechenleistung).

Wahrscheinlich bin ich über das Ziel hinausgeschossen. Und ich will auch user profile iconFrolo nicht den Spaß nehmen.
Programmtechnisch ist es garantiert hochinteressant, eine gewisse Anzahl von Himmelskörpern in 3D um ein Zentralgestirn zu bewegen. Und ich wünsche ihm auch viel Erfolg.
Das Ergebnis interessiert mich sehr, da ich von OpenGL praktisch keine Ahnung habe.

Mein Hinweis bedeutete, dass es nur sehr schwer möglich ist, eine Simulation eines Planetensystems zu erstellen, die mit den tatsächlichen Werten übereinstimmt.
Besonders interessiert mich (wenn das Programm fertig ist), wie stark sich die berechneten Bahnen dann von den wahren unterscheiden.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein