Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Teilchensimulator in Echtzeit (https://www.delphipraxis.net/33653-teilchensimulator-echtzeit.html)

Minz 10. Nov 2004 18:09


Teilchensimulator in Echtzeit
 
Hallösche,

ich möchte auf dem Bildschirm Punkte umherfliegen sehen, die sich gegenseitig anziehen, so wie Himmelskörper im Weltraum.

1. Problem: Geschwindigkeit
Bei einer Darstellung der Geschwindigkeit in Pixeln, hat man das Problem, dass ein Teilchen bestimmte Pixel auslässt und von Position x auf Position x+Geschwindigkeit springt. Jedes Teilchen soll aber jede mögliche Position betreten um zu einem anderen Punkt zu kommen.
Ich habe mich daher entschlossen die Geschwindigkeit als zeitlichen Faktor zu verwenden. Dazu bekommt jedes Teilchen einen Timer dessen Intervall auf 1000/Speed gesetzt wird. Geschwindigkeit 5 bedeutet also eine Neuberechnung der Position alle fünftel Sekunde.
Die anstehenden Berechnungen, die von den Teilchen gemäß Timer angemeldet werden, kommen in eine Warteliste. Ich kann bis zu 50 Teilchen verwenden (Einfluss-Berechnung ausgenommen) ohne das die Warteliste ansteigt.

2. Problem: Einfluss
Einflüsse bedeuten unter Umständen eine Geschwindigkeitssteigerung, was sich sofort in einem Anstieg der Warteliste ausdrückt.

Was kann ich verbessern/verändern, um einen Anstieg der Warteliste zu verhindern, bzw. gibt es eine geschicktere Lösung der Geschwindigkeitsberücksichtigung.

So long
Minz

jim_raynor 10. Nov 2004 18:15

Re: Teilchensimulator in Echtzeit
 
Für jedes Teilchen ein Timer? Oh gott, was für eine Verschwendung. Würde lieber ein Teilchen nehmen und dann in einer Schleife alle Teilchen berechnen

Minz 10. Nov 2004 18:24

Re: Teilchensimulator in Echtzeit
 
Dann hast du vermutlich den Ansatz nicht verstanden...

nailor 10. Nov 2004 18:29

Re: Teilchensimulator in Echtzeit
 
jedem teilchen einen richtungs- und ortsvektor geben. wenn nötig noch beschleunigung. dann in einer endlosschleife die positionen updaten, unter verwendung der variablen "deltaT", die die zeit seit dem letzen durchlauf darstellt. da deltaT i.A. sehr klein ist, können i.A. bei polynomen alle summanden mit quadratisch oder höherm deltaT vernachlässigt werden.

Minz 10. Nov 2004 18:35

Re: Teilchensimulator in Echtzeit
 
Zitat:

jedem teilchen einen richtungs- und ortsvektor geben.
Hab ich bereits

Zitat:

wenn nötig noch beschleunigung
erstmal nicht

Zitat:

dann in einer endlosschleife die positionen updaten, unter verwendung der variablen "deltaT", die die zeit seit dem letzen durchlauf darstellt. da deltaT i.A. sehr klein ist, können i.A. bei polynomen alle summanden mit quadratisch oder höherm deltaT vernachlässigt werden.
Ahso meinst du: ich schaue jedes Teilchen in der Endlosschleife an, und vergleiche dann DeltaT(abgelaufene Zeit seit letzter Berechnung) mit der Geschwindigkeit(zeitlich), und entscheide dann ob das Teilchen wieder bewegt wird?

nailor 10. Nov 2004 18:41

Re: Teilchensimulator in Echtzeit
 
Zitat:

Zitat von Minz
Ahso meinst du: ich schaue jedes Teilchen in der Endlosschleife an, und vergleiche dann DeltaT(abgelaufene Zeit seit letzter Berechnung) mit der Geschwindigkeit(zeitlich), und entscheide dann ob das Teilchen wieder bewegt wird?

nein, die Vektoren sind Fließkomma-Zahlen. Bewegt wird immer. Nur beim Zeichnen wird gerundet.

Minz 10. Nov 2004 18:46

Re: Teilchensimulator in Echtzeit
 
Das ist doch genau das Problem !!

Dein Ansatz funktioniert wenn alle Teilchen weniger als 1 Pixel pro Berechnung zurücklegen.

Gibt es diese Begrenzung nicht, kann es sein, dass einzelne Teilchen 3 Pixel zurücklegen, aber die Pixel dazwischen nicht beschreiten...

nailor 10. Nov 2004 18:48

Re: Teilchensimulator in Echtzeit
 
a: ja und. dann bewegt es sich halt mehrere pixel weit
b: wenn du das nicht mit dem kopf rechnest, sondern mitm computer, wird das nie so lange dauern, dass was zwei pixel schafft.

Minz 10. Nov 2004 18:54

Re: Teilchensimulator in Echtzeit
 
Zitat:

a: ja und. dann bewegt es sich halt mehrere pixel weit
Eventuell gibt es Gründe, die das überspringen von Pixeln nicht wünschenswert machen. Es geht in diesem Thread wie bei jedem anderen auch nicht darum, seine eigenen Ideen durchzusetzen, sondern sich auf die des Fragenden einzulassen...

Zitat:

b: wenn du das nicht mit dem kopf rechnest, sondern mitm computer, wird das nie so lange dauern, dass was zwei pixel schafft.
hä?

nailor 10. Nov 2004 19:02

Re: Teilchensimulator in Echtzeit
 
b sagt aus, dass es praktisch nie vorkommen wird, dass ein pixel übersprungen wird.
a sagt aus, dass es noch nichtmal schlimm wäre.

ja, auf das problem eingehen und helfen. und meine methode ist jahrzehntelang erprobt und für fast alle derartigen probleme anwendbar. sag mir warum es nicht geht, und ich versuch mich weiter reinzudenken, aber so ganz ohne grund...


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr.
Seite 1 von 2  1 2      

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