AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Teilchensimulator in Echtzeit

Ein Thema von Minz · begonnen am 10. Nov 2004 · letzter Beitrag vom 10. Nov 2004
Antwort Antwort
Seite 2 von 2     12   
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#11

Re: Teilchensimulator in Echtzeit

  Alt 10. Nov 2004, 20:09
Ok, also nochmal...

Das Punkte übersprungen werden will ich NICHT, denn je nach Geschwindigkeit werden die übersprungene Distanz größer.

Angenommen ein Teilchen hat die Geschwindigkeit 100. Dann würde das Teilchen bei jeder berechnung 99 Pixel einfach auslassen.

Was mir daran nicht gefällt:
1. es wird eine ruckelige Angelegenheit
2. das Teilchen würde bei jeder Position ein anderes Teilchen beeinflussen und auch selbst beeinflusst werden. Befindet es sich auf Position 10 und springt plötzlich auf 20 werden 9 Einfluss-Berechnungen nicht berücksichtigt.

Apropos: wieso kommt das praktisch nie vor, das ein Teilchen übersprungen wird?
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#12

Re: Teilchensimulator in Echtzeit

  Alt 10. Nov 2004, 20:19
AHHHHH

jetzt kapier ich, was du meinst...

die Positionen updaten, unter berücksichtigung von DeltaT:

Ich führe ein Update durch mit z.B. Geschwindigkeit 10, da allerdings z.B. nur 1/100 sek vergangen sind,
beträgt die neue Position z.B +10/100

Schade, das hätte ich nach dem 5. Beitrag gebraucht aber danke...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Teilchensimulator in Echtzeit

  Alt 10. Nov 2004, 20:35
Kuck mal in der Freeware oder OpenSource Sparte, da hatte mal jemand so ein Programm vorgestellt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
gekmihesg
(Gast)

n/a Beiträge
 
#14

Re: Teilchensimulator in Echtzeit

  Alt 10. Nov 2004, 20:37
so ein programm gabs hier doch schonmal oder?
vielleicht mal suchen...
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#15

Re: Teilchensimulator in Echtzeit

  Alt 10. Nov 2004, 20:38
ja genau. das rechnen mit Fließkomma (für die genauigkeit auch bei kleinen zeitschritten) und beim anzeigen auf integers runden.

übersprungen wird dabei nichts, es sei denn du hast tausende von punkten oder machst ne gigantische grafische darstellung. bei ersterem wäre dann die überlegung, doch nicht echtzeit zu gehen, bei zweitrem ist das motto optimieren, optimieren, optimieren. aber ohne visualisierung solltest du millionen von durchgängen pro sekunde schaffen. das heißt, in einer sekunde müsste mehr als ne million pixel zurückgelegt werden, damit nich jeder berechnet wird (unwahrscheinlich).
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#16

Re: Teilchensimulator in Echtzeit

  Alt 10. Nov 2004, 21:01
Was er will ist das ausgehend vom nächsten anzusteuerenden Pixel der Flugbahnen der Zeitpunkt der Neuberechnung ermittelt wird. Statt also alle Bahnen mit fester zeitlicher Schrittweite zu berechnen, möchte er eine Formel haben wie man auf Grund einer festen geographischen Schrittweite == Pixelraster, den Zeitpunkt des Ausführens dieses Schrittes zu ermitteln.

Gut, das geht zu machen und würde die geammte Simulation enorm beschleunigen, da man so direkt auf die grobe Auflösung der gepixelten Anzeige direkt Bild für Bild berechnen kann. Statt also alle Bahnen permanent bei jedem zeitlichen Schritt erneut zu berechnen und somit in der Anzeige unsinnige 0-Pixel Bewegungen zu berechnen, wird bei dieser Methode immer zu einem Zeitpunkt nur die Pixel neu beerechnet die sich auch tatsächlich ändern würden.

Man berechnet ausgehend von der aktuellen Pixelkoordinate die nächste zu setzende Pixelkoordinate + den Zeitpunkt dazu. Der Zeitpunkt ist relativ zu einer Einheitszeit. Die Einheitszeit ist mindestens so klein wir die kleinste zeitliche Schrittweite der schnellsten Bewegung innnerhalb der Flugbahnen. Man baut eine Liste von zu löschenden und zu setzenden Pixelkoordinaten auf zu denen ein Timerwert gespeichert wird. Dieser Timerwert wird pro Einheitszeit um1 dekrementiert. Sobald dieser Wert 0 erreicht wird der alte Pixel gelöscht der neue Pixel an der neuen Koordinate gesetzt und auf Grund der Formel der Bewegungsbahn der nächste zu setzende Pixel berechnet samt seinem Counter.

Diese Vorgehensweise ist ideal für Priority Listen geeignet und erlaubt die freie Scalierung der Bewegungsabläufe auf untersichiedliche Rasterungen. Zudem ist die in fakt die Methode die die Simulation am schnellsten ausführen wird, aber eben OHNE an Informationen einzubüsen.

Der Weg dahin ist relativ einfach. Angenommen du hast eine Formel die zu einem Zeitpunkt die Pixelkoordinaten berechnet. Diese Formel wird nun so umgestellt das sie den Zeitpunkt = Schrittweite zur nächsten Pixelkoordinate berechnet. Damit dies funktioniert wird einfach eine virtuelle Einheitszeit eingeführt. Die zeitliche Schrittweite zur nächsten Pixelkoordinate wird durch diese Einheitszeit dividiert und ergibt den Counter für die List der abzuarbeitenden Pixelkoordinaten. Nun hat man einen einzigsten Timer der im Takt der Einheitszeit arbeitet. Bei jedem Ereignis werden die Zähler in der Priority Liste um 1 dekrementiert. Geht ein Zähle auf 0 so ist der exakte Zeitpunkt eingetreten um nun den Pixel zu setzen. Die Koordinaten dieses Pixel werden aus der Priority List gelöscht und in die Lister der nächsten Berechnungen eingefügt. So arbeitet man die Priority Liste komplett ab. Danach kommt die Berechnungs-Liste dran. In dieser stehen die Formeln der Bewegungsbahnen und deren letzer gerade abgearbeiteter Pixelkoordinate. Nun wird diese Liste abgearbeitet indem man die nächsten Pixelkoordinaten + Zeitpunkt berechnet und die neue Koordinate in die Priority List sortiert nach Zähler eingefügt. Dies geht alles iterativ.

Gruß hagen
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Teilchensimulator in Echtzeit

  Alt 10. Nov 2004, 22:03
Zitat von gekmihesg:
so ein programm gabs hier doch schonmal oder?
vielleicht mal suchen...
Da!
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#18

Re: Teilchensimulator in Echtzeit

  Alt 10. Nov 2004, 22:35
@Hagen

das sieht schon ganz ähnlich nach meinem Ansatz aus. Vielen Dank, ich werde beide Ansätze mal ausprobieren.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz