Physik einer Kugel
-
Hi!
Ich möchte ein kleines Flash-Spiel programmieren, wo man mit Hilfe einer Feder eine Kugel in ein bestimmtes Ziel schießen muss, wobei es einige Hindernisse wie Rampen geben soll. Da ich die Physik annähernd realistisch berechnen lassen möchte, habe ich mal ein paar Fragen:Fall 1:
Die Kugel rollt eine Rampe hinab. Sie gewinnt dadurch logischerweise an Geschwindigkeit. Mein Ansatz ist zuerst die Normalkraft (Fn) und davon die x-Komponente zu ermitteln, um herrauszufinden mit welcher Kraft die Kugel in x richtung beschleunigt wird. Hier eine Skizze:
http://img517.imageshack.us/img517/5052/skizze7ta.jpgGegeben ist:
Fg = 100N (Gewichtskraft der Kugel)
α = 50° (Steigungswinkel der Rampe)
v = 1m/s (Momentangeschwindigkeit der Kugel)Durch Rechnen mit den Winkelfunktionen, erhalte ich für Fn 130,54N und für die x-Komponente von Fn 83,91N. Wie komme ich jetzt an die Beschleunigung der Kugel in x Richtung? Beschleunigung ist ja m/s² und 1N ist 1kg*m/s²
Wüsste ich nun den Beschleunigungswert, könnte ich mit der Formel s(t)=0,5a*t²+v0*t
herausfinden, um wie viel meter sich die Kugel pro Sekunde in x richtung verschiebt.Fall2
Wenn die Kugel mit 0,1m/s die Rampe erreicht, erhält sie ja nicht sofort die Maximalgeschwindigkeit sondern wird nach und nach schneller, bis die von der Beschleunigung abhängige Geschwindigkeit erreicht ist. Gibts da auch ne Formel für? Ich würde auf e Funktion Tippen.Ich hoffe das war nicht zu viel. Danke schonmal, falls mir jemand helfen kann.
-
Beschleunigung ist ja m/s² und 1N ist 1kg*m/s²
Dann ist Bechleunigung a = F / m also Kraft durch Masse deiner Kugel.
-
Ist einleuchtend, danke.
Bleibt da nur noch die Frage mit dem Nichtlinearen Geschwindigkeitszuwachs beim erreichen der Rampe...
-
Nun, da Du nun für jeden Punkt die Beschleunigung ausrechnen kannst, sollte das doch auch gehn.
aus wikipedia
Möchte man eine gleichförmig beschleunigte und geradlinige Bewegung beschreiben wie z. B. beim freien Fall, so ist a konstant und man erhält aus der Integration der Differentialgleichung
mit der Anfangsgeschwindigkeit v0. Für den zurückgelegten Weg ergibt sich
mit dem Anfangsort s0.oder einfacher
delta v = a*t
-
Das habe ich mir auch schon überlegt, wenn man die Formel jedoch stur anwendet, erhält man, wenn man bei s(9)=0,5at²+v0*t=1441m/s raus.
Da die Funktion quadratisch ist, geht die Geschwindigkeit gegen unendlich.
In der Natur würde die Kugel allerdings irgendwann nichtmehr schneller werden.Hier eine sehr Grobe skizze um oben genanntes etwas zu veranschaulichten:
http://img185.imageshack.us/img185/6589/skizze23yx.jpg
-
Doch, die Kugel beschleunigt gegen Lichtgeschwindigkeit
(theoretisch)
Du darfst nicht vergessen, die Reibung zu beachten.
Mit der Rollreibung verheizt du einen Teil deiner kinetischen Energie.
http://de.wikipedia.org/wiki/Rollreibung
-
außerdem wirkt ein luftwiderstand... der steigt quadratisch zur geschwindigkeit an
und wenn die kugel schnell wird, also sehr schnell, so ab 0.3*c, dann musst du den relativistischen Massenzuwachs mit einberechnen, der sich nach
m = m0 / sqrt(1-v2/c2) ergibt
-
Interessant, hätte ich nicht gedacht.
Ich glaube kaum, dass ich die Reibung bei solch kurzen Strecken, die die Kugel mal wo rauf oder runterrollt, berücksichtigen muss. Ich werde es probeweise aber trotzdem mal ausprobieren.Danke für alles, hast mir sehr weitergeholfen
-
Maxi schrieb:
außerdem wirkt ein luftwiderstand... der steigt quadratisch zur geschwindigkeit an
und wenn die kugel schnell wird, also sehr schnell, so ab 0.3*c, dann musst du den relativistischen Massenzuwachs mit einberechnen, der sich nach
m = m0 / sqrt(1-v2/c2) ergibt
0.3*c
den flipper wil ich aber sehn, der so ne lange rampe hat
-
Oder eine entsprechend starke Feder.
-
Beim Rollen ist noch etwas weiteres neben der Rollreibung zu beachten. Da wird Energie in die Rotation gesteckt. Wenn eine Kugel eine schiefe Ebene runterrollt, dann ist sie unten viel lagnsamer als eine Kugel, die die schiefe Ebene daneben nur (reibungsfrei) runterrutscht. Momentan gehst Du davon aus, dass deine Kugel rutscht.
-
d.h. ich müsste da was mit der Formel aus dem Energieerhaltungssatz für Rotationsenergie basteln, richtig?
Leider weiß ich die Formel nichtmehr. Aufjedenfall gibt es da so Konstanten die man einsetzen muss. (Kugel, Stab, Zylinder ect.) Hat die zufällig jemand im Kopf?
-
Perner schrieb:
Aufjedenfall gibt es da so Konstanten die man einsetzen muss. (Kugel, Stab, Zylinder ect.)
Das Trägheitsmoment I.
Für eine Kugel ist
Weitere Trägheitsmomente: Wikipedia - Trägheitsmoment
-
Danke, genau das meinte ich, mir ist nur der Begriff dafür nicht eingefallen.
Was war mit dem ω nochmal gemeint, die Umfangsgeschwindigkeit? Es müsste ja etwas mit der Geschwindigkeit zu tun haben.Scheint so, als müsste ich morgen meinen Physiklehrer etwas nerven.
-
Energieerhaltungssatz, war diesjahr im physikabi
wenn eine Kugel aus der Höhe h herunterrollt, wird diese am ende er rampe in rotations+translation senergie umgewandlet:
Epot = Etr+Erot
mgh=1/2mv2+2/5mr2w^2 (w ist omega)daurasu ergibt sich dann, wenn eine Kugel aus einer bestimmten Höhe rollt:
v(h) = sqrt(10/7gh)
da wr = v ist
hoffe, das hilft dir
-
Perner schrieb:
Was war mit dem ω nochmal gemeint, die Umfangsgeschwindigkeit?
ja, ω ist die winkelgeschwindigkeit.
-
Bist du sicher das du das alles in dein spiel einbauen musst?
Reibung,Luftwiederstand,Schwerkraft...Ich an deiner stelle würd mir selbst ne funktion zusammenbasteln.
Eine die die geschwindigkeit bis zu einem maß erhöht.
Das wäre deutlich einfacher und reicht denk ich mal für ein soclhes spiel weitesgehend aus. Mit der übrigen physik hast du dann noch genug zu tun
(winkel,wurfparabeln...)
Ich würde mir auf jeden fall diese arbeit nicht machen.
-
Eigentlich würd es reichen, die Werte einmal zu berechnen.
(wenn Du denn immer die gleiche Kugel auf der gleichen Rampe hast)
Dann kannst Du entweder die Funktion soweit vereinfachen, das Du näherungsweise die richtigen Werte ausrechnest, oder einfach aus ner Tabelle die im Voraus berechneten Werte auslesen.
Andererseits muss man seinen Rechner ja auch was zu tun geben
-
Mit dem Energieerhaltungssatz kann ich hier leider nur bedingt arbeiten.
Ich werde wahrscheinlich eine Framerate von 30 verwenden, dh. es wird etwa alle 33 Milisekunden (1/1000*30) die aktuelle Position der Kugel abgefragt, welche Kräfte gerade auf die einwirken und welche Geschwindigkeit sie dadurch erhält.Ich weiß dass es etwas übertrieben ist, für ein solch simples Spiel Physikalisch korrekte berechnungen anzustellen, aber ich möchte nur mal ausprobieren ob ich eine annähernd realistische Physik in Flash schaffen kann. Außerdem ist es ein schönes Mittel die Physik formeln die mir der Doc um die Ohren haut mal praktisch zu testen.
Umwelteinflüsse die Wind, Luftwiderstand sowie dämpfungen schwingungen ect. werde ich natürlich nicht beachten, da man davon sowieso nix merkt bei solch kleinen Geschwindigkeiten.
-
Perner schrieb:
Ich weiß dass es etwas übertrieben ist, für ein solch simples Spiel Physikalisch korrekte berechnungen anzustellen
Das ist nicht übertrieben. Lass Dir da mal nichts von irgendwelchen Leuten einreden, die letztendlich keine Ahnung haben. Wenn man systematisch arbeitet, dann bildet man sich zuerst ein Modell dessen, was man implementieren möchte. ...und das ist hier nunmal das passende physikalische Modell.
Alle anderen Vorgehensweisen sind nur Gefrickel!