AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schwerkraft wirkt auf Objekt

Ein Thema von Antigo · begonnen am 26. Aug 2006 · letzter Beitrag vom 4. Sep 2006
Antwort Antwort
Seite 2 von 3     12 3      
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#11

Re: Schwerkraft wirkt auf Objekt

  Alt 26. Aug 2006, 20:09
vielen Dank für den Beweis

Bei meinem Programm ist es bereits so, dass 2 Objekte mit verschiedenen Massen gleich schnell fallen. Das heisst ich habs bereits richtig programmiert, nur ein paar Sachen (in meinem Kopf) durcheinander geworfen.

Das Problem ist, allerdings, dass die Zeit die ein Objekt braucht um zu fallen, nicht mit der Formel s = 1/2 * g * t² übereinstimmt. Nur ich weiss nicht warum. Daher wollte ich auch nachfragen ob mein Ansatz überhaupt vernünftig ist, also dass F=m*deltav/deltat.


edit: vielleicht liegt der Fehler darin:
Ich gehe davon aus, dass jede Sekunde einmal der Schwerkraftsvektor auf den Kraftvektor des Balles wirkt. Daher addiere ich immer den Bruchteil des Schwerkraftsvektor (abhängig von der vergangenen Zeit deltaT) auf den Kraftvektor des Balles. DIe Schwerkraft wirk aber doch die ganze Zeit auf den Ball, oder nicht? Wie berechne ich das also?


Die Problematik liegt ja darin, dass ich nicht weiss wann ich den Schwerkraftsvektor auf den Kraftvektor des Balles rechnen muss. DIe Schwerkraft wirkt eigentlich immer. Ich kann das also sowieso nur näherungsweise machen, indem ich kleine Schritte mache und auf den Ballvektor den Schwerkraftsvektor draufrechne. Rechne ich aber bei jedem Schleifendurchlauf den kompletten Schwerkraftsvektor auf den Ballvektor, würde die Flugbahn immer anders aussehen, je nachdem wie schnell der PC und damit der Schleifendurchlauf ist. Hilfe!
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#12

Re: Schwerkraft wirkt auf Objekt

  Alt 27. Aug 2006, 12:19
1. Der Schwerkraftvektor ist IMMER Konstant, nämlich (vereinfacht) Fg = m*g
2. Der Geschwindigkeitsvektor ergibt sich aus a*t und a = g (9,81 ...)
Diese Formel gibt dir die Geschwindigkeit zum aktuellen Zeitpunkt t zurück, wenn du die Kugel bei t=0 fallen lässt.
3. Die zurückgelegte Strecke s = 0,5*a*t^2 wobei a = g (siehe oben)

Du kannst das nicht iterativ mit delta_t = 1 Sekunde berechnen, dieses Schema ist viel zu grob.
Verwende die Formeln oben!

mfG

Markus
Markus
  Mit Zitat antworten Zitat
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#13

Re: Schwerkraft wirkt auf Objekt

  Alt 27. Aug 2006, 12:34
Leider kann ich wiegesagt nicht einfach Erdbeschleunigung * >Vergangene Zeit seit loslassen< rechenen, da ich auch noch einen Windvektor miteinbringen will. Durch diesen ändert sich natürlich die Beschleunigung a die auf den Ball wirkt, und zusätzlich verändert sich auch noch die Richtung in die der Ball beschleunigt wird.


Was ich brauche ist irgendeine vernünftige Verrechnung des Kraftvektors des Balles und des Schwerkraftsvektors. Es ist klar das der Schwerkraftsvektor IMMER wirkt. Und mir ist jetzt auch klar geworden das ich nicht einfach sagen kann der wirkt einmal pro Sekunde und abhängig von der vergangenen Zeit rechne ich nur mit einem Bruchteil des Schwerkraftvektors.
Aber irgendwie muss ich ja schon mit einem Bruchteil dieses Vektors rechnen. Denn würde Ich einen Timer haben, der einmal pro Sekunde aufgerufen wird, würde auch nur einmal pro Sekunde der Schwerkraftvektor auf den Kraftvektor des Balles gerechnet. Dementsprechend würde bei einem Timer der hundert mal pro Sekunde aufgerufen würde, auch hundertmal der Vektor draufaddiert. Das das Ergebnis, sich sowas von arg unterscheidet dürfte klar sein Irgendwie muss das aber möglich sein, mir fehlt nur der Ansatz
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#14

Re: Schwerkraft wirkt auf Objekt

  Alt 27. Aug 2006, 14:18
Irrtum, du rechnest hier mit Vektoren, d.H., du kannst dir die Y-Komponente einfach mal ignorieren, dann mittels
F= m*a und a*t = v berechnen, welche Geschwindigkeit deine Kugel in X-Richtung erfährt.
Du berechnest also nur die X-Komponente iterativ und speicherst die gegenwärtige Geschwindigkeit in einer Variable für den Teilvektor X.
Dann berechnest du mit dem Zeitpunkt seit Fallenlassen den aktuellen Y-Vektor und machst eine Vektoraddition von VektorX und VektorY und erhältst deinen aktuellen resultierenden Vektor.

mfG

Markus
Markus
  Mit Zitat antworten Zitat
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#15

Re: Schwerkraft wirkt auf Objekt

  Alt 27. Aug 2006, 15:25
ist ja alles schön und gut, aber ich will und kann nicht mit der Zeit seit fallen lassen rechnen. SPäter will ich einen Ball auch nach oben werden, vom Wind erfassen lassen, und dann nach unten fallen lassen. Da ist nix mehr mit Zeit seit fallen lassen. Vielleicht bin ich ja auch aufm Holzweg, aber ich komme irgendwie nicht weiter.
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Schwerkraft wirkt auf Objekt

  Alt 27. Aug 2006, 16:13
Du könntest eine Liste der wirkenden Kräfte erstellen und daraus zu einem gegebenen Zeitpunkt t alle zwischen t0 und t auftretenden Beschleunigungen berechnen... glaube ich...

ansonsten: http://newtondynamics.com - OS-Physikengine mit Delphi-Headern.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

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

Re: Schwerkraft wirkt auf Objekt

  Alt 27. Aug 2006, 16:50
Zitat von JasonDX:
Zitat von Antigo:
G=m*g. Demnach müsste eine schwerere Kugel schneller fallen. Oder muss ich hier noch Sache wie trägheit der Masse berücksichtigen
Nein, die Traegheit hat wenig damit zu tun.
Doch, es ist genau die Trägheit, warum eine Feder und ein Stein gleich schnell fallen. Beim Stein ist die Gravitationskraft G=mg zwar entsprechend grösser als bei der Feder, aber wegen der höheren Masse des Steins ist dieser auch schwerer zu beschleunigen. Genau das ist die Trägheit.

Oder mal andersrum. Wenn du mit gleicher Kraft auf einen Gegenstand einwirkst, so lässt sich ein leichter Gegenstand schneller beschleunigen als ein schwerer. Zieh ein Auto und zieh einen LKW, und Du wirst die Trägheit kennenlernen [/quote]
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

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

Re: Schwerkraft wirkt auf Objekt

  Alt 27. Aug 2006, 17:01
Ich werd dann aber auch noch mal hier meinen Senf dazugeben. Ich les immer nur die Formel

F = mg und v = at

Das reicht aber nicht aus, um Reibungseffekt mit einzubeziehen. Der einzig vernünftige Weg ist der von markusj vorgeschlagen:
Zitat von markusj:
Fg = m*g
Freib = 0,5*cw*A*roh*v^2
Und Kräfte addiert man, und die Summe der Kräfte ist IMMER gleich der Masse mal Beschleunigung. Und da die Reibungskraft entgegenwirkt, wird da Vorzeichen gewechselt:

mg - 0,5*cw*A*roh*v^2 = ma

Bischen vereinfach kann man das schon noch, weil ja 0,5*cw*A*roh eine Konstante ist. Ich nenn die mal C.

mg - C*v^2 = ma

Die Gleichung gilt es zu lösen, und hier darf leider nicht einfach gesagt werden, dass v=at ist. Das Einzige was gilt ist dass a die zeitliche Ableitung von v ist, also a=dv/dt.

Aber um die Differentialgleichung zu lösen, hab ich jetzt keine Lust. Nur eins vorweg: Die Lösung der Gleichung wird bischen komplierter aussehen als s=1/2at^2.
  Mit Zitat antworten Zitat
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#19

Re: Schwerkraft wirkt auf Objekt

  Alt 30. Aug 2006, 19:56
sry das ich mich solange nicht mehr gemeldet habe. Danke nochmal für alle bisherigen ANtworten, aber mein Problem liegt noch ganz woanders. Inzwischen habe ich die Berechnung verändert, und der Ball fällt auch in der Zeit herunter in der er es soll. Werfe ich den Ball jedoch schräg nach oben, so fliegt er erst gerade aus, macht dann eine scharfe Kurve, und fällt wieder runter. Screenshot ist angehangen.

Hier mal der Code der durchlaufen wird:
Delphi-Quellcode:
var deltav,deltat,m,F,s,a:double;
    position,V:Tvektor;
    i : integer;
begin
time:=gettickcount();
while not abbruch do
begin
deltaT:=(gettickcount()-time)/1000;
if deltat>=0.001 then
begin

   berechnen; //Verrechnet alle Kräfte die auf den Ball wirken. Ergebnis wird in Endvektor gespeichert

   a:=Endvektor.giblaenge / koerper.m; //BEschleunigung die auf Ball wirkt

   deltav:=a * deltat; //Geschwindigkeit mit der sich Ball in Richtung der Kraft in der Zeit deltat bewegt
   
   V:=Tvektor.create(Endvektor.x1,Endvektor.x2); //Geschwindigkeitsvektor erzeugen der in Richtungder Kraft zeigt

   v.setzelaenge(deltav); //LÄnge des Geschwindigkeitsvektors setzen

   koerper.v.addieren(v,1); //Geschwindigkeit die auf Körper wirkt, mit der aktuellen verrechnen (Faktor 1)

   Position:=Tvektor.create(koerper.v.x1,koerper.v.x2); //Positionvektor (Verschiebung des Balles) erstellen der in Richtung der neeuen Geschwindigkeit zeigt

   //Wenn Verschiebungsvektor größer Null, dann neue Position des Bales errechnen
   if position.giblaenge>0 then begin

      Position.setzeLaenge(deltat * koerper.v.gibLaenge);
      koerper.x:=koerper.x+Position.x1;
      koerper.y:=koerper.y-position.x2;
 end;


 koerper.zeichnen(form1);
end;
Application.Processmessages;
end;
Das meiste ist selbsterklärend. Die Funktion giblaenge gibt den Betrag eines Vektors zurück. DIe Prozedor setzeLaenge legt den Betrag fest.


Wie bisher auch, meine Frage: warum ist das so? Ist meine Berechnungsart falschß Ich hoffe jemand hat eine Antwort


edit: COde überarbeitet
Miniaturansicht angehängter Grafiken
ball_152.jpg  
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
markusj

Registriert seit: 9. Dez 2005
Ort: Kandel
408 Beiträge
 
#20

Re: Schwerkraft wirkt auf Objekt

  Alt 30. Aug 2006, 21:15
Ich kann zwar mit deinem Code NIL anfangen, aber das Bild sieht ... interessant aus.
Normalerweise solltest du eine Wurfparabel bekommen.
Der X-Vektor bleibt ja immer gleich, d.h. du veränderst in diesem Fall nur den Y-Vektor um den Geschwindigkeitsbetrag, der in -Y Richtung dazukommt.
Dein Graph hat einen etwas extremen Knick, welchen ich aber ohne Angabe von verwendeten Massen und Geschwindigkeiten nicht überprüfen kann.
Ich halte es aber für durchaus möglich, dass deine Berechnungen näherungsweise Stimmen.

Noch was: Bitte formatiere deinen Source etwas mehr ... Leezeichen kosten nix.

mfG

Markus

EDIT: Versuch mal, deine Schleife durchzusteppen und kontrolliere dabei die Veränderung der einzelenen Werte.
Der Geschwindigkeitsvektor X sollte ja nicht berührt werden.
Und poste mal deine Parameter!
Markus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 10:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz