![]() |
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 ![]() Über ein wenig Hilfe würde ich mich sehr freuen! |
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. |
Re: Simulation eines schrägen Wurfes
|
Re: Simulation eines schrägen Wurfes
Hall ound Willkommen in der DP... :dp: :dp:
Der Benutzer Luckie hat auf seiner ![]() ![]() mfg Caleb |
Re: Simulation eines schrägen Wurfes
Danke! Ihr habt mir sehr geholfen!
Und sorry für den Zweitpost im Delphi-Treff! |
Re: Simulation eines schrägen Wurfes
Zitat:
@lbccaleb: Danke, jetzt muss ich es nicht mehr raussuchen. ;) |
Re: Simulation eines schrägen Wurfes
Zitat:
|
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. |
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. |
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) |
Re: Simulation eines schrägen Wurfes
Zitat:
|
Re: Simulation eines schrägen Wurfes
Energie kann nicht gewonnen und nicht vernichtet werden.
|
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
![]() |
Re: Simulation eines schrägen Wurfes
Fü den turbulentn Fall muss man, glaube ich, dann Differenzialgleichungn lösen.
|
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.
|
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) |
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:
|
Re: Simulation eines schrägen Wurfes
Wenn es ein turbulenter Fall sein soll, dann nur mit Kugel, die ja
![]() Ansonsten würde ich mich auf den deutlich einfacher zu berechnenden laminaren Fall konzentrieren. |
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.
|
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