Physikengine

Hi!

Ich arbeite gerade an einer „simplen“ Physik - Engine für ein Computerspiel in 2D. Simpel weil ich mich auf grundsätzliche mechanische Berechnungen beschränken will. Der Einfachheit halber - und weil das System dann so schön ist :smile: - würde ich am liebsten sämtliche physikalischen Effekte, die ich benötige, über Kraftvektoren darstellen und entsprechende Reaktionen hervorrufen. Das gelingt in der Theorie so weit auch. Der einzige physikalische Effekt, den ich benötige und den ich irgendwie nicht theoretisch über Kraftvektoren zu fassen kriege ist die „physikalische Einheit“. Ein Beispiel dazu: Ein Männeken steht auf einem Zug. Der Zug fährt los. Wir alle wissen, der Mann fährt mit weil er mitbeschleunigt wird. Wenn ich mir das physikalisch betrachte, merke ich nur, daß diese Konstruktion „Zug“ jetzt auf einmal einen Kraftvektor hat, der in eine bestimmte Richtung zeigt. Wie kann ich es mathematisch am besten beschreiben, so daß das Männchen - oder was auch immer auf dem Zug liegt - mitbeschleunigt wird - aber nur indem ich Kraftvektoren berechne. Oder mit anderen Worten: Wie komme ich vom System her darauf, daß das Objekt auf dem Zug den gleichen Vektor bekommen muß wie der Zug, was bildet die physikalische Einheit. Ich dachte mal an Bodenreibung, bin aber nicht sicher ob es was damit zu tun hat. Wer kann helfen?

Florian

Hi,

alle wissen, der Mann fährt mit weil er mitbeschleunigt wird.
Wenn ich mir das physikalisch betrachte, merke ich nur, daß
diese Konstruktion „Zug“ jetzt auf einmal einen Kraftvektor
hat, der in eine bestimmte Richtung zeigt. Wie kann ich es
mathematisch am besten beschreiben, so daß das Männchen - oder
was auch immer auf dem Zug liegt - mitbeschleunigt wird - aber
nur indem ich Kraftvektoren berechne.

Das wird nicht ganz einfach, ist aber machbar:

Oder mit anderen Worten:
Wie komme ich vom System her darauf, daß das Objekt auf dem
Zug den gleichen Vektor bekommen muß wie der Zug, was bildet
die physikalische Einheit. Ich dachte mal an Bodenreibung, bin
aber nicht sicher ob es was damit zu tun hat. Wer kann helfen?

Wie du sagst, es ist die Reibung: Haftreibung.
Wenn du berechnen willst, ob das Männeken mitfährt oder vom Zugdach fällt, musst du die Beschleunigungskraft (F, Kraft), die auf das Männchen wirkt, mit der Haftreibungskraft (Fhaft)vergleichen.
-Ist F Fhaft, dann rutscht das Männeken vom Zugdach oder rutscht im Zug, bis es sich den Kopf anschlägt. Den Kraftvektor bekommst du dann am einfachsten durch eine Integration der Differentialgleichung:

F_männchen(t) = m(d^2/dt^2)x_männchen(t) = Fgleit sign[(d/dt) (x_männchen(t)-x_zug(t))] = Fgleit *sign[v_männchen(t)-v_zug(t)]

Dabei ist Fgleit die Gleitreibung zwischen dem Männchen und dem Zug, sign ist die Signumsfunktion. Hier geht also das Vorzeichen der Geschwindigkeitsdifferenz zwischen Männchen und Zug ein.

Viel Spass beim Programmieren
Rossi

Hi

Danke für den Tipp, ich werd’s mal probieren.

Florian

Hallo,

Hmmm… das gibt einigen Stoff zum Gruebeln, ich habe nur mein schulisches Grundwissen in Sachen Physik aber man bedenke folgendes:
Steht der Mann aufrecht faellt er hoechstwahrscheinlich um (Probier es aus :smile:
Steht er nach vorne geneigt wird er nicht so leicht umfallen.
Eigentlich wird er in fast jeder Position entweder leicht nach vorne oder leicht nach hinten fallen.
Auch wird jemand dessen ganze masse im Kopf vereint ist wesentlich leichter (bzw. schneller) umfallen.
Man zeichne sich dazu ein Kraefteparalellogramm aus FG(Kraft die vom Boden aufgebracht werden muss (Gewichtskraft) welche vom Boden senkrecht nach oben zeigt) und FRes(resultiende Kraft, zeigt vom Fusspunkt zum Schwerpunkt) und Fa(Kraft die fuer die Beschleunigung benoetigt wird, zeigt parralel zum Dach nach vorne). Nur wenn Fres genau zum Schwerpunkt zeigt wird dass Maennlein nicht die Tendenz haben umzukippen. In diesem Falle muss nur noch die Haftreibung mit Fa verglichen werden. Ist FRei groesser bleibt es stehen, ansonsten faengt es an zu rutschen.
Steht das Maennlein nicht in der optimalen Schraeglage, so bleibt eine resultierende Kraft nach oben oder nach unten, und es faengt an zu kippen.
Wo ich mir das jetzt alles so ueberlegt habe, staune ich doch, dass ich mich noch auf den Beinen halten kann (habe aber zum Glueck auch keine Punktfoermigen Fuesse :smile:

Gruss Ben