AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

Ein Thema von fishbrain · begonnen am 3. Sep 2010 · letzter Beitrag vom 9. Sep 2010
Antwort Antwort
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 3. Sep 2010, 09:16
Nun meine Frage:
Macht meine bisherige Lösung (konstante FPS soviel BPS wie möglich) Sinn?
Bzw. ist dieses Problem mit normalen Rechnern überhaupt lösbar?

Für meine Seminararbeit sollten Merkur + Saturn gut laufen.

Wäre über Ideen dankbar
Ob das Sinn macht musst du wissen Das kommt auch drauf an, wie weit in die Zukunft du denn rechnen möchtest. Bei kleinen Intervallen wird das System später chaotisch als bei großen intervallen, weil bei großen Intervallen der Fehler größer ist. (Im Normalfall)

Um Merkur und Saturn gut darzustellen bräuchtest du eben Intervalle, mit denen Merkur noch funktioniert. Saturn geht dann ziemlich sicher auch noch. Wenn das dann zuviele Berechnungen werden kannst du versuchen, z.b. Jupiter und Saturn nur jeden 2. Berechnungsschritt zu berechnen.
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 3. Sep 2010, 10:32
Dazu gibt es IMHO mehrere mögliche Lösungsvorschläge, die sich auch kombinieren lassen:
  1. Musst du wirklich simulieren oder kannst du die Bahnen nicht auch Berechnen?
  2. Verwende keine Fließkommazahlen sondern ein Record mit zwei Int64, einen für den Ganzzahl- und einen für den Dezimalteil. Durch Operatorüberladung kannst du diesen Typen dann ganz normal verwenden.
  3. Trenne Darstellung und Berechnung - Lagere die Simulation in einen eigenen Thread aus, der mit voller Systemauslastung und somit kleinstmöglichen Intervallen läuft und lasse nur die Darstellung im Timer

Ich hatte mal ein ähnliches Problem - dabei ging es aber nur um die Indexierung von Audiosamples in einem großen Zeitraum - meine Lösung war es keinen Extended (80 Bit) sondern einen Int64 mit festen 16 Bit Nachkommastellen zu verwenden.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 3. Sep 2010, 10:54
  1. Musst du wirklich simulieren oder kannst du die Bahnen nicht auch Berechnen?
Das sollte schwer werden: Dreikörperproblem
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 3. Sep 2010, 11:29
Überzeugt
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
fishbrain

Registriert seit: 17. Sep 2007
Ort: Regensburg
132 Beiträge
 
#5

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 5. Sep 2010, 08:50
@jfheins:
Es geht nicht darum, dass Saturn zu kleine Zeitintervalle in der Berechnung hat, sondern Merkur zu große. Du musst dir vorstellen: wenn man Saturn so anzeigen will, dass man nicht einschläft bevor er die Sonne einmal umkreist braucht man eine Geschwindigkeit die bewirkt, dass Merkur in einer Sekunde mehrmals die Erde umkreist.
Bei der Umrechnung von Kraft auf Beschleunigung ruft das dann erhebliche Ungenauigkeiten hervor. Je größer das Intervall zwischen den Berechnungen desto größer die Ungenauigkeiten.



Also zusammengefasst habe ich zwei Möglichkeiten das hinzukriegen:
1. Optimierung des Berechnungsprozesses
2. Extra Thread nur für die Berechnung

Ich denke, dass alleine langt nicht. Wahrscheinlich werde ich eine Art Notbremse einbaun, die die Simulationsgeschwindigkeit bei kritischen Werten einfach automatisch senkt.

Wird der Pc halt nacht für nacht durchlaufen .
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 5. Sep 2010, 12:33
Geschwindigkeit die bewirkt, dass Merkur in einer Sekunde mehrmals die Erde umkreist.
Interessant
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Gravitationssimulation: Simulationsgeschwindigkeit - Berechnungsintervall

  Alt 5. Sep 2010, 12:52
Geschwindigkeit die bewirkt, dass Merkur in einer Sekunde mehrmals die Erde umkreist.
Interessant
Das kommt durch die erwähnten Ungenauigkeiten
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz