Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi 2-D Physik Engine - Facharbeit (https://www.delphipraxis.net/107812-2-d-physik-engine-facharbeit.html)

olle 2. Feb 2008 16:31


2-D Physik Engine - Facharbeit
 
Hallo,
als Facharbeit ist es meine Aufgabe, eine kleine möglichst reale Engine zu bauen. Das soll heißen, ein Objekt (Ball) kann durch einen Raum geworfen werden, und es wirken der Luftwiderstand und die SChwerkraft auf das Objekt ein.
Hat da vllt jemand eine Ahnung, wo ich da ein paar Informationen her bekomme. Wie ich also die Berechnungen durchführe etc.

Und wenn jemand ein solches Programm kennt, wäre es auch nett, es mir zu zeigen, damit ich mir das schon fertig angucken und meine Gedanken dazu machen kann (Ich meine nicht umbedingt den Quellcode. Das wäre ja ein bischen zu einfach.)

Vielen Dank schon einmal.

Flips 2. Feb 2008 17:09

Re: 2-D Physik Engine - Facharbeit
 
Hi,

also in den Raum werfen wird mit nur 2D ziemlich schwer^^
Die Berechnungen für die Gravitation solltest du schon behandelt haben.
Wenn du dir vorstellst, dass du etwas (ein Ball bspw.) in 2D wirfst, dann ist das nichts anderes als ein waagerechter (schiefer) Wurf.
Du hast die Geschwindigkeit als Vektorgröße, in X-Richtung bleibt sie (wenn es KEINE Luftreibung gibt) immer gleich, in Y-Richtung nutzt du einfach die Bewegunsgleichungen für eine gleichförmig beschleunigte Bewegung.
Suche hier mal nach "schiefer Wurf". Du findest dort ein Applet und eine Formelsammlung zum schiefen Wurf.

Torpedo 2. Feb 2008 17:37

Re: 2-D Physik Engine - Facharbeit
 
Machs mit Vektoren, das geht am einfachsten.
Dabei ist die Richtung des Balls ein Vektor, die Schwerkraft ein Vektor nach unten, der Luftwiderstand wirkt der Richtung entgegen (denke ich mal) usw.

olle 2. Feb 2008 17:45

Re: 2-D Physik Engine - Facharbeit
 
Der Link ist schon gar nicht so schlecht, vielen Dank.

Ich habe schon ein Programm geschrieben, in welchem sich ein Ball mit konstanter Geschwindigkeit bewegt und an den Wänden abprallt.
Auch habe ich schon einen ersten Versuch gemacht, die Schwerkraft mit einzubringen. Dies habe ich aber nur so gemacht, dass jedes Mal, wenn der Ball sich bewegt (mit einem schlichten Timer), Der Vektor v.y um 0.1 erhöht wird. Aber das ist doch wohl nicht ausreichend für eine Facharbeit.
In einem anderen Forum habe ich folgende Formel bekommen:
Zitat:

also die Gravitationskraft ist gegeben durch
Fg = G * m1 * m2 / r^2
wobei G die Gravitationskonstante ist mit G = 6.67*10^11 (die Einheit weiß ich grad nicht),
m1 und m2 die Massen der beteiligten Körper und r der Abstand der Schwerpunkte.
Kann man das nicht ein wenig vereinfachen, da ich eig dem Körper keine Masse geben wollte.

phreax 2. Feb 2008 18:02

Re: 2-D Physik Engine - Facharbeit
 
Die Formel die du da zitierst, hat aber nur bei sehr großen Massen eine wahrnehmbare Auswirkung, also wenn du Planten, die umeinanderkreisen simulieren willst. Da du aber einen einfachen Ball wirfst reicht ja die ganz simple Formel
Code:
F = m*g
mit g = 9.81 m/s² (N/kg)
Gruß phreax

DP-Maintenance 2. Feb 2008 19:12

DP-Maintenance
 
Dieses Thema wurde von "sakura" von "VCL / WinForms / Controls" nach "Programmieren allgemein" verschoben.
Viel Erfolg mit der Facharbeit. Ordne da alles richtig ein ;)

DGL-luke 2. Feb 2008 19:19

Re: 2-D Physik Engine - Facharbeit
 
für den luftwiderstand gibt es wohl auch vereinfacht... moment... die hab ich sogar in der formelsammlung: "Widerstandsbeiwerte c_w in Luft", für die Kugel 0,45. äh. ah. luftwiderstand von fahrzeugen: F = c_w * A * rho * v² / 2. da sollte hinhauen. jetzt brauchst du nur noch was anerkanntes, aus dem dus ziteren kannst...

Flips 2. Feb 2008 20:49

Re: 2-D Physik Engine - Facharbeit
 
Gut dann formuliere ich es mal aus.
Waagerechter Wurf:
X-Komponente : abschussgeschwindigkeit - luftwiederstand
Y-Komponente : abschussgeschwindigkeit - anziehung

Das ganze erstmal ohne Luftwiederstand:

Code:
x = v0 * t
y = v0 * t + 0.5 * g * t²

Wobei g = -9.81 [m/s²]
Das ganze für einen gewissen Abschusswinkel solltest du aus dem Dokument von Walter-Fendt rauslesen können, oder von wiki

olle 3. Feb 2008 00:43

Re: 2-D Physik Engine - Facharbeit
 
Zitat:

Zitat von Flips
Y-Komponente : abschussgeschwindigkeit - anziehung

Muss hier nicht auch wieder der Luftwiderstand berücksichtigt werden ??

Flips 3. Feb 2008 11:06

Re: 2-D Physik Engine - Facharbeit
 
Gut ok, geb ich dir Recht :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 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