Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Simulation eines schrägen Wurfes (https://www.delphipraxis.net/127877-simulation-eines-schraegen-wurfes.html)

rajuneon 20. Jan 2009 15:56


Simulation eines schrägen Wurfes
 
Hallo!

Ich hoffe, ich bin hier halbwegs richtig:
Ich will eine Visualisierung eines schrägen Wurfes schreiben, die währenddessen in einer nebenstehenden Tabelle wichtige Werte wie z.B. die aktuelle Geschwindigkeit des geworfenen Gegenstandes ausgibt. Einige der Parameter sollen änderbar sein, z.B. die Masse, der Abwurfwinkel etc.
Dazu folgende Fragen:

- Wie stelle ich es an, dass die Werte in der Tabelle dauern aktualisiert werden, ohne dass ich ein OnClick-Ereignis habe?
- Wie regele ich die Zeit so, dass es halbwegs realistisch aussieht? sleep(); ist ja nicht wirklich genau und je nach Computer unterschiedlich.
- Gibt es die Möglichkeit, den simulierten Wurf durch eine ScrollBar o.ä. vor- und zurück- zuspulen?

Es gibt ein ähnliches Programm als Javaapplett , das allerdings ein wenig umfangreicher als das ist, was ich vorhatte.

Über ein wenig Hilfe würde ich mich sehr freuen!

3_of_8 20. Jan 2009 16:00

Re: Simulation eines schrägen Wurfes
 
Naja, nimm dir halt einen Timer und überprüfe bei jedem Ausführen der Behandlungsroutine, wie viel Zeit tatsächlich vergangen ist, setz diese Zeitdifferenz in die Formel ein und schon hast du deine Werte. Die kannst du dann nach Belieben zeichnen, zu Tabellen hinzufügen, was du willst.

Zeitdifferenzen messen geht mit GetTickCount, oder, wenn Millisekunden nicht genau genug sind (was wohl eher nicht der Fall ist) mit QueryPerformanceCounter und QueryPerformanceFrequency und wenns extrem genau gehen muss, gibts dafür noch spezielle Timerklassen, die mit der Genauigkeit glaube ich noch unterhalb des Mikrosekundenbereichs liegen.

Florian Hämmerle 20. Jan 2009 16:20

Re: Simulation eines schrägen Wurfes
 
Crosslink:

Flö

lbccaleb 20. Jan 2009 16:24

Re: Simulation eines schrägen Wurfes
 
Hall ound Willkommen in der DP... :dp: :dp:


Der Benutzer Luckie hat auf seiner Seite ein passendes Demo Programm, das ist bestimmt was für dich...
Schraeger Wurf


mfg Caleb

rajuneon 20. Jan 2009 22:55

Re: Simulation eines schrägen Wurfes
 
Danke! Ihr habt mir sehr geholfen!

Und sorry für den Zweitpost im Delphi-Treff!

Luckie 20. Jan 2009 23:07

Re: Simulation eines schrägen Wurfes
 
Zitat:

Zitat von rajuneon
Einige der Parameter sollen änderbar sein, z.B. die Masse

Die Masse spielt doch keine Rolle. Jedenfalls meine ich mich zu erinnern, dass die Massse in der Formel für die Flugbahn nicht vorkommt.

@lbccaleb: Danke, jetzt muss ich es nicht mehr raussuchen. ;)

turboPASCAL 21. Jan 2009 03:26

Re: Simulation eines schrägen Wurfes
 
Zitat:

Die Masse spielt doch keine Rolle.
Doch schon, wenn man den Energieaufwand mit berechnen will. Aber dann kann man ja gleich den Luftwiederstand mit einbeziehen. ;)

rajuneon 21. Jan 2009 05:57

Re: Simulation eines schrägen Wurfes
 
Also ich bin mir noch nicht ganz sicher, ob ich das als theoretischen Wurf betrachten will, also im Vakuum, oder ob ich daraus gleich eine ballistische Kurve machen soll. Wenn, dann sollte der geworfene Gegenstand eine Kugel sein, die ja (laut Wikipedia) einen cw-Wert von ca. 0.45 hat. Wenn das nicht allzu kompliziert mit einzubeziehen ist.
Wieso sollte die Masse keine Bedeutung haben? Sie wirkt sich doch, wenn ich das richtig sehe, auf die Energien (E pot und E kin)und auf die gegen den Erdmittelpunkt gerichtete Kraft aus, wenn nicht noch mehr.

Draos 21. Jan 2009 06:42

Re: Simulation eines schrägen Wurfes
 
Wenn du es mit Bewegungsvektoren und Beschleunigungsvektoren machst ist selbst der Luftwiderstand einfach als Beschleunigung entgegen der Flugrichtung zu sehen.

Und nein Masse egal. Klar Energie. Aber die Energie musste vorher auch reingesteckt werden für die Startgeschwindigkeit.

3_of_8 21. Jan 2009 07:35

Re: Simulation eines schrägen Wurfes
 
Die Masse kürzt sich raus. Bei einem schrägen Wurf ohne Luftwiderstand hat man als Geschwindigkeit in der x-Komponente vx=const und in der y-Komponente ay*t+vy0, wenn man das dann komponentenweise integriert hat man bei der Strecke in der x-Komponente vx*t und in der y-Komponente ay/2*t²+vy0*t.
(Mit ay=9,81m/s²)

Wenn du das ganze mit Luftwiderstand rechnen willst, brauchst du Informationen über die Form des Objektes. Wenn ich mich nicht recht irre, ist das im allgemeinen Fall recht kompliziert, da musst du mit Tensoren rechnen, wenn du aber z.B. eine Kugel hast, geht das einfach mit dem Gesetz von Stokes. (Fr=-6*pi*r*äta*v)

Da kannst du dann einfach als Beschleunigung in x-Richtung Fr einsetzen (mit Startgeschwindigkeit vx0, und wenn die x-Geschwindigkeit<0 wird, setz sie gleich 0) und in y-Richtung a-sgn(vy)*Fr (mit Startgeschwindigkeit)

Das kann man dann schrittweise berechnen, die Schrittweite musst du selber ausprobieren. Wenn dir das mit dem schrittweise ausrechnen nicht gefällt, kannst du bei Fr auch noch die jeweiligen Geschwindigkeitsfunktionen einsetzen, sodass Fr nur noch von der Zeit abhängig ist:
ax=Fr=-6*pi*r*äta*vx=-6*pi*r*äta*(vx0+ax/2*t²)=-6*pi*r*äta*vx0-3*pi*r*äta*t²
ax(3*pi*r*äta*t²+1)=-6*pi*r*äta*vx0
ax=-(6*pi*r*äta*vx0)/(3*pi*r*äta*t²+1)

ay=a +- Fr=a -+ 6*pi*r*äta*vy=a -+ 6*pi*r*äta*(vy0+ay/2*t²)
ay=a -+ 6*pi*r*äta*vy0 -+ 3*pi*r*äta*ay*t²
ay(+- 3*pi*r*äta*t²+1)=-+ 6*pi*r*äta*vy0
ay=-(6*pi*r*äta*vy0)/(3*pi*r*äta*t² +- 1)
(Fall + ist hier falls vy>0, Fall - falls vy<0)

rajuneon 21. Jan 2009 16:13

Re: Simulation eines schrägen Wurfes
 
Zitat:

Zitat von Draos
Und nein Masse egal. Klar Energie. Aber die Energie musste vorher auch reingesteckt werden für die Startgeschwindigkeit.

Nein, ich meine während des Fluges an sich. Die Energie, die man zu Beginn reinstecken muss, ist ja konstant je nach Gewicht des abgeworfenen Gegenstandes. Aber z.B. am Scheitelpunkt der Wurfparabel ist die potentielle Energie ja maximal, die kinetische jedoch minimal, während sie sich im Fall ja dauernd verändern.

Florian Hämmerle 21. Jan 2009 16:15

Re: Simulation eines schrägen Wurfes
 
Energie kann nicht gewonnen und nicht vernichtet werden.

Apollonius 21. Jan 2009 16:24

Re: Simulation eines schrägen Wurfes
 
Falls du den Luftwiderstand mit einbeziehen willst, musst du erst einmal überlegen, ob ein laminarer oder ein turbulenter Fall vorliegt; dazu kannst du die Reynolds-Zahl betrachten. Die Formel für den Luftwiderstand hängt davon nämlich entscheidend ab; Manuel hat für den laminaren Fall bereits die Formel angegeben, im turbulenten ist sie völlig anders - erst dort brauchst du dann auch den cw-Wert.

Luckie 21. Jan 2009 16:28

Re: Simulation eines schrägen Wurfes
 
Fü den turbulentn Fall muss man, glaube ich, dann Differenzialgleichungn lösen.

Apollonius 21. Jan 2009 16:40

Re: Simulation eines schrägen Wurfes
 
Meines Wissens nicht. Der cw-Wert ist durch Berechnungen praktisch nicht zu bestimmen, aber wenn man ihn hat, muss man nur noch in die Formel F = 1/2 rho A v^2 cw einsetzen.

Draos 21. Jan 2009 16:54

Re: Simulation eines schrägen Wurfes
 
Nochmal zum Thema Energie.

Energie bleibt immer in einem abgeschlossenen System gleich. Sie wird nur umgewandelt.

Beim Wurf wird nur Ekin in Epot und andersrum umgewandelt. Nix sollte verloren gehen (Reibung außer acht gelassen)

3_of_8 21. Jan 2009 17:18

Re: Simulation eines schrägen Wurfes
 
Also ganz genau genommen: Energie ist eine Erhaltungsgröße und die Summe aller Energien ändert sich im abgeschlossenen System nicht, solange man nicht Zeiten unterhalb einer Plancksekunde betrachtet, dies wird durch die Homogenität der Zeit garantiert. :mrgreen:

rajuneon 21. Jan 2009 17:28

Re: Simulation eines schrägen Wurfes
 
Wenn es ein turbulenter Fall sein soll, dann nur mit Kugel, die ja laut Wikipedia einen cw-Wert von 0,45 hat.
Ansonsten würde ich mich auf den deutlich einfacher zu berechnenden laminaren Fall konzentrieren.

Apollonius 21. Jan 2009 17:29

Re: Simulation eines schrägen Wurfes
 
Das wird jetzt zwar fast komplett OT, aber ich glaube nicht, dass in der Mikrophysik die Energie auch in kleinen Zeiträumen noch erhalten werden muss. In makroskopischen Zeiträumen sicherlich, aber die Unschärferelation erlaubt doch einen kurzzeitigen Energiezuwachs (er muss allerdings so kurz sein, dass die Realität nichts davon merkt :mrgreen:) - sonst könnten doch auch keine Austauschteilchen entstehen.

rajuneon 5. Feb 2009 17:49

Re: Simulation eines schrägen Wurfes
 
das hat jetzt nicht mehr viel mit der ursprünglichen Fragestellung zu tun, aber immer noch mit meiner Simulation:

Wie kann ich die Simulation mit Hilfe eines Pause-Buttons pausieren? Also, dass mein Shape (/Canvas /wasauchimmer) an der Position stehenbleibt, an der es gerade ist und die fortlaufenden Werte in der Wertetabelle daneben auch sozusagen stehenbleiben?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:40 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-2025 by Thomas Breitkreuz