Thema: Delphi Simulation Freierfall

Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Simulation Freierfall

  Alt 25. Dez 2007, 20:44
Zitat von mimi:
Das Objekt Plaziert du einfach oben und lässt es in einem Timer + Zähler Variable einfach fallen.
Das ist, find ich, eine etwas schwammige Formulierung. "Einfach fallen lassen"

Zitat von mimi:
Wobei es ja immer schneller Fallen muss, weil so ein Objekt wiegt meines Wissens auch.
Es fällt nicht schneller, weil es schwerer ist, sondern weil es durch die Erdanziegung gleichmässig beschleunigt wird. D.h., sofern man Luftwiderstand vernachlässigt, nimmt die Geschwindigkeit linear zu, und zwar gemäss v=gt+v0

Zitat von mimi:
Die Aufgabe ist gar nicht so wild.
Und weiter ??

Ich glaube, ich habe mich in meinem letzten Beitrag nicht genau genug ausgedrückt... Sinn der Sache ist es auf jeden Fall die Berechnung und die grafische Darstellung voneinander zu trennen. Also man berechne für einen Zeitpunkt t (und t lässt sich nun aber wirklich leicht aus Gettickcount ausdrücken... muss nur noch auf einen Zeitpunkt 0 normiert werden, welcher nix anderes ist als die Startzeit der Simulation), seine Position x und y auf dem Bildschirm. Da in x-Richtung keine Beschleunigung vorliegt, ist x ganze einfach x=v_x*t+x0. (v_x=Initialgeschwindigtkeit in x-Richtung, x0=x-Position beim Start der Simulation). In y-Richtung liegt nun allerdings eine Beschleunigung vor, und aus obiger Gleichung folgt dann
Code:
v_y=-gt+v0_y
=> y=-1/2*g*t^2-v0_y+y0
Einzige Variable ist auch hier wieder die Zeit t.

Jetzt baust du beide Gleichungen für x und y, welche dir den Ortsvektor r(x,y) geben, entweder in eine beliebige while-Schleife oder in einen Timer. Zu Beginn der Schleife bzw. beim Auslösen des Timers liest du über gettickcount wieder die Systemzeit aus, ziehst davon t0 ab, und hast einen neuen Zeitpunkt t für deine Simulation. Rechne r(t) aus (also jeweils x und y), und du hast einen Punkt, wo sich dein Objekt befindet.

Und erst hier kommt die grafische Darstellung ins Spiel. Wie du das machst, ist eigentlich egal. Ich würde ein Shape oder TPicture einfach neu plazieren. Natürlich muss x und y noch auf Bildschirmkoordinaten normiert werden, aber all das hat nix mehr mit dem freien Fall zu tun, sondern nur noch mit der grafischen Darstellung.
  Mit Zitat antworten Zitat