AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Simulation Freierfall
Thema durchsuchen
Ansicht
Themen-Optionen

Simulation Freierfall

Ein Thema von Bömmelmütze · begonnen am 25. Dez 2007 · letzter Beitrag vom 14. Jan 2008
 
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
 


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 03:39 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