Advanced Games Physics
7. Kapitel

Der freie elastische Stoß

Zwei Objekte stoßen aus beliebigen Richtungen anein­ander

Der freie elastische Stoß ist ein etwas allgemeinerer Fall des Stoßgeschehens. Jetzt kann das stoßende Objekt aus jeder beliebigen Richtung auf ein anderes, aber ruhendes Objekt auftreffen. Bevor wir an die Umsetzung gehen, sollten wir uns aber über die Berechnung der verschiedenen Vektorkomponenten Gedanken machen. Eigentlich stellen doch die zentralen und die tangentialen Vektorkomponenten Komponenten ein und desselben Vektors in verschiedenen Koordinatensystemen dar. So wird eine Vektor a im x-y-Koordinatensystem durch seine Komponenten ax und ay beschrieben. Nehmen wir nun ein anderes, rechtwinkliges, Koordinatensystem, das gegenüber dem genannten x-y-Koordinatensystem um den Winkel φ gedreht ist. Dieses nennen wir das u-v-Koordinatensystem. Dann wird der Vektor a in diesem System durch seine Komponenten au und av ausgedrückt. Auf unsere Aufgabe bezogen heißt das, die Geschwindigkeitsvektoren der am Stoß beteiligten Kugeln müssen vor dem Stoß aus ihrer x-y-Darstellung in eine u-v- sprich vZ-vT-Darstellung überführt werden. Umgekehrt müssen diese Komponenten nach dem Stoß wieder in die ursprüngliche x-y-Darstellung zurück transformiert werden. Im Endeffekt handelt es sich hierbei um die Vor- bzw. Rückdrehung von Koordinatensystemen bei einem unverrückten Vektor. In kannst Du diese Transformationen nachvollziehen. Links im Bild ist zunächst ein x-y-Koordinatensystem, in dem ein Ortsvektor a (weißer, mit der Maus drehbarer Pfeil) zu sehen ist. Ebenfalls zu sehen sind seine Komponenten ax (blau) und ay (grün). Nun kann hier ein zweites Koordinatensystem um den Winkel φ (Schieberegler) gedreht werden. Sofort siehst Du, wenn Du den Modus-Button betätigst, die Komponenten au und av im gedrehten Koordinatensystem.
Nach dem Stoß stehen die Koordinaten a'u und a'v zur Verfügung. Diese sind nun in das x-y-Koordinatensystem zurück transformiert, um so die kartesische Darstellung der sich bewegenden Kugeln nach dem Stoß zu ermöglichen. Dies zeigt dann das rechte Koordinatensystem. Der Vektor a' ist danach dem ursprünglichen Vektor identisch, da hier im Beispiel keine Wechselwirkung im Stoß implementiert ist:
download p5.js
Bitte einen Augenblick Geduld
während das Programm geladen wird!

Abb. Vektorkomponenten in einem rotierten Koordinatensystem

Geistesblitz
Vektortrans­formation
Die Berechnung von Komponenten eines Vektors, z.B. v 1 in seine Komponenten in einem anderen Koordinatensystem, wie z.B. in die tangentiale vT und die zentrale Komponente vZ stellen immer wieder eine Herausforderung an das Vorstellungsvermögen dar. Ganz besonders dann, wenn es sich um ein 3D-Problem handeln sollte.
Abhilfe schafft hier die Behandlung der Aufgabe in vektorieller Schreibweise, indem Vektoren, deren Komponenten im kartesischen Koordinatensystem vorliegen, durch eine Koordinatentransformation in ein geeignetes - d.h. gedrehtes - Koordinatensystem übersetzt werden. Wie das funktioniert wird im nebenstehenden 3. Geistesblitz erklärt. Eine ausführliche Beschreibung für Drehungen im 3D-Raum weist die erforderlichen Rotationsmatrizen für Drehungen um die Achsen des 3D-Koordinatensystems aus.



Im nebenstehenden Beispielprogramm wird eine solche Transfrormation am Beispiel der Reflexion eines Objektes an einer beliebig orientierten starren Wand (grauer Balken) demonstriert. Zur besseren Veranschaulichung werden nur der Geschwindigkeits-Vektor sowie seine Komponenten vor und nach der der Reflexion dargestellt.
Es können sowohl die Ausrichtung der Wand mit dem Schieberegler als auch Betrag und Richtung des Geschwindigkeitsvektors v (grüner Knopf am Ende des Geschwindigkeitsvektors) eingestellt werden. Mit dem Button Mode kann die Darstellung der Geschwindigkeiten, ihrer Komponenten vor und nach dem Stoß ausgewählt werden.
download p5.js
run program

Aber nun zum dezentralen Stoß. Wenden wir die Rotation des x-y-Koordinatensystems auf den Geschwindigkeitsvektor v vor dem Stoß an. Bedenken wir, dass die beiden Kugeln sich unter dem Stoßwinkel β () treffen, dann bedeutet dies, dass unser x-y-Koordinatensystem um diesen Winkel in mathematisch positive Drehrichtung
()
Formel
gedreht werden muss, damit die zentrale Geschwindigkeitskomponente vZ in die Stoßrichtung und die tangentiale Geschwindigkeitskomponente vT senkrecht dazu bestimmt wird. Damit ergeben sich die beiden Komponenten entsprechend und zu:
Achtung!
Wird die Formel nicht angezeigt, dann bitte die Browser-Daten löschen!
Vektorkomponenten im Stoßmoment

Abb. Vektorkomponenten im Stoßmoment

Aus dem vorherigen Kapitel wissen wir bereits, dass die Zentralkomponenten vZ nach den Stoßgesetzen wechselwirken, wohingegen die Tangential­komponenten vT im Stoß unverändert bleiben. Nach dem Stoß stehen die folgenden Komponenten zur Verfügung:
()
Formel
und
()
Formel
Die nun nach dem Stoß wieder in das x-y-Koordinatensystem zurück transformiert werden müssen. Das geschieht nun dadurch, dass die zu inverse Transformation ausgeführt bzw. das vT-vZ-Koordinatensystem um den Winkel
Achtung!
Wird die Formel nicht angezeigt, dann bitte die Browser-Daten löschen!
zurück gedreht (entgegen der mathematisch positiven Drehrichtung!) ausgeführt wird (). Was auf die Rücktransformation
Achtung!
Wird die Formel nicht angezeigt, dann bitte die Browser-Daten löschen!
Vektorkomponenten im Stoßmoment

Abb. Vektorkomponenten nach dem Stoß

führt. Übrigens, dies entspricht genau der Transformation nach , wenn die Rotation genau in die entgegen gesetzte Richtung erfolgt, der Drehwinkel also ist. Für beide Operationen kann daher die selbe Transformations-Funktion Anwendung finden, wie das auch aus hervorgeht.



Abb. Hin- und Rücktrans­formation der Geschwindig­keits­komponenten


Das Beispielprogramm zeigt das Stoßgeschehen bei Bewegungen aus beliebigen Richtungen. Der Debug-Mode gestattet die detailierte Untersuchung dieses Stoßvorgangs. Vor dem Start können die Positionen der Kugeln und deren Geschwindigkeitsvektoren vor dem Stoß per Maus bestimmt werden. Dazu werden die Kugeln selbst (Standort) bzw. die Vektoren mit der Maus angefasst und bewegt. Mit dem Schiebe­regler ist das Massen­verhältnis beider Kugeln veränderbar. Die Abarbeitung erfolgt schrittweise, so dass Du im Detail nachvollziehen kannst, wie die vektoriellen Komponenten vor, während und nach dem Stoß aussehen.
download processing
download p5.js
run program


Ergebnisdiskussion: Aus der allgemein gültigen Lösung für die Wechselwirkung im Stoß aus beliebigen Richtungen geht hervor, dass die Berechnung für beide Objekte in gleicher Weise erfolgt. D.h. es spielt keine Rolle, von welchem Objekt aus die Berechnung der Bewegungen vorgenommen wird. Die tangentialen Komponenten v1T bzw. v2T und die zentralen Komponenten v1Z bzw. v2Z werden aus den Geschwindigkeiten v1 bzw. v2 vor dem Stoß gebildet, wie die x- bzw. y-Komponenten v'1x bzw. v'1y und v'2x bzw. v'2y aus den Geschwindigkeiten v'1 bzw. v'2 nach dem Stoß.

Wie Du erkennen kannst, ist die gegenseitige Beeinflussung der Objektbewegungen symmetrisch. Ein solches Symmetrieverhalten erleichtert das Verstehen und damit die Erweiterung der 2-Objekte-Lösung auf beliebig viele Objekte.

Bouncing - der springende Ball

Der springende Ball ist ein Sonderfall des dezentralen Stoßes. Wird nämlich die als ruhend betrachtete Masse m2 und deren Radius R2 unendlich groß gewählt, mutiert die Kugel zur harten Ebene. Trifft nun eine Kugel der Masse m1 mit der Geschwindigkeit v1 unter dem Winkel α auf die unendlich schwere und unendlich große Masse m1, so wird die horizontale Geschwindig­keits­kompo­nente auch nach dem Stoß ihren Wert behalten, also v 1 x = v 1 x . Und was passiert mit der y-Komponente der Geschwindigkeit? Darüber geben und Auskunft.
Erweitern beider Gleichungen mit 1 m 2 ergibt, wenn m 2 :
()
Formel
sowie
()
Formel
Und wie erfolgt der Stoß auf einer schiefen Ebene? Nach Möglichkeit wollen wir die Transformation nach bzw. weiter nutzen. Damit das gelingt, müssen wir aber den richtigen Rotationswinkel bestimmen. Nehmen wir an, dass die Ebene im Winkel ψ geneigt ist () und die Ebene durch einen sehr großen Kreis R → ∞ ersetzt wird. Nun vergleichen wir die Stoßsituation mit der von . Dann sehen wir, dass das Koordinatensystem um ψ + π gedreht werden muss, um die gleiche Stoss-Situation herbei zu führen!
Um Verwirrungen zu vermeiden, habe ich die Geschwindigkeits-Komponenten von Zentralkomponente vZ in Normalkomponente vN und die Tangentialkomponente vT in Parallelkomponente vP umbenannt. So lautet dann die Transformationsregel:
Achtung!
Wird die Formel nicht angezeigt, dann bitte die Browser-Daten löschen!
Die Rücktransformation wird ebenso wie in durch das Zurückdrehen des Koordinatensystems um den Winkel -(β + π) ausgeführt:
Achtung!
Wird die Formel nicht angezeigt, dann bitte die Browser-Daten löschen!
Vektorkomponenten auf der schiefen Ebene

Abb. Vektorkomponenten auf der schiefen Ebene

Daraus kann leicht der Sonderfall der Reflexion auf einer horizontalen Ebene (ψ = 0) abgeleitet werden. Wegen des großen Radius der 2. "Kugel" ist der Kontaktwinkel zwischen Kugel und Untergrund immer 90°, d.h. die Normalenkomponente wird gemäß immer zu 100% reflektiert, ändert also nur ihr Vorzeichen, Während die Parallelkomponente unverändert bleibt:
Achtung!
Wird die Formel nicht angezeigt, dann bitte die Browser-Daten löschen!
verdeutlicht diesen Vorgang, den wir für gewöhnlich als Reflexion nach dem Prinzip Einfallswinkel gleich Ausfallswinkel bezeichnen: φ = φ

Vektorkomponenten im Stoßmoment

Abb. Vektorkomponenten nach dem Stoß

Bouncing an beweglichem Objekt

Eine im Spieleumfeld häufig auftretende Situation zeigt . Ein Ball liegt auf einem festen Untergrund oder an der Bande eines Billardtischs und wird von einem anderen Ball unter einem beliebigen Winkel α getroffen. Die feste Begrenzung stellt eine Zwangsbedingung für diesen Ball dar. Gesucht sind die Bewegungsgleichungen der beiden Bälle nach dem Stoß.

Schiefe Ebene

Abb. Stoß mit Zwangsbedingung

Leider gehört diese Aufgabenstellung zu den Problemen, die rein geometrisch unter Anwendung des Energie- bzw. Impulserhaltungssatzes nicht zu lösen sind, da hier drei Partner am Stoß beteiligt sind: die zwei Bälle und die Begrenzung. Drei Partner und zwei Bedingungen (Energieerhaltung und Impulserhaltung), das ist nicht lösbar! Also müssen wir uns eine Ersatzlösung ausdenken, die wenigstens dem Anschein nach der Realität folgt.

Vom Bouncing wissen wir, dass die Bewegung eines Balles, der auf eine harte, ebene Unterlage aufprallt, an dieser Unterlage reflektiert wird. Diese Eigenschaft machen wir uns hier zu Nutze. Im Stoßmoment findet die Wechselwirkung zunächst zwischen dem noch ruhenden Ball m1 und dem stoßenden Ball m2 statt. Dabei erfolgt eine Impuls- und Energieübertragung von m2 auf m1. Mit dem Ergebnis, dass es nun zwei neue Geschwindigkeitskomponenten v'1x und v'1y gibt. Die Geschwindigkeitskoponenten v'2x und v'2y ergeben sich nach den bekannten Stoßregeln. Wegen der harten Unterlage wird jedoch die Komponente v'1y sofort wieder reflektiert, also in der Richtung umgekehrt. Nun trifft die reflektierte Komponente v''1y auf den Ball m2 und wechselwirkt mit diesem. Daraus ergeben sich weitere Geschwindigkeitskomponenten v''2x, v''2y und v''1x. Diese drei Komponenten liefern nur den Anteil, der auf die reflektierte v''1y-Komponente zurück zuführen ist und daher zu den bereits ermittelten Komponenten des ersten Stoßes zwischen m2 und m1 additiv überlagert werden müssen. Das führt auf a) bis c):
Achtung!
Wird die Formel nicht angezeigt, dann bitte die Browser-Daten löschen!
Achtung!
Wird die Formel nicht angezeigt, dann bitte die Browser-Daten löschen!
Achtung!
Wird die Formel nicht angezeigt, dann bitte die Browser-Daten löschen!
Und es gibt wieder eine vertikale Komponente v'''1y, die am Boden reflektiert wird, also wieder mit den Bällen wechselwirkt. Das kann also eine unendliche Geschichte werden! Glücklicherweise wird die vertikale Komponente des Balls m1 immer schwächer, so dass diese Abfolge irgendwann vernachlässigbar wird.

Im folgenden Beispielprogramm wird die Komponente v'''1y = 0 gesetzt, um eine iterative Bearbeitung des gesamten Vorgangs zu vermeiden. Das ist physikalisch nicht korrekt, weil es den Energieerhaltungssatz verletzt. Aber optisch macht diese Vorgehensweise einen recht guten Eindruck.

Im Beispielprogramm sind die Bälle B1 und B2 zu sehen. B2 ruht auf einer festen Unterlage und wird bei geeigneter Orientierung von Ort und Geschwindigkeit des Balls B1 getroffen. Die einzelnen Phasen des Stoßgeschehens sind im Schrittbetrieb zu verfolgen.
download p5.js
run program

Ergebnisdiskussion: Die beiden Extremfälle
  1. beide Bälle liegen auf der Ebene nebeneinander und
  2. beide Bälle befinden sich senkrecht über der Ebene übereinander
werden ideal abgedeckt. Dies beweist auch der Vergleich der kinetischen Energien vor und nach dem Stoß.
Anders bei den Zwischenwinkeln. Dort wird der Energie­erhaltungs­satz verletzt, was aber der optischen Erscheinung keinen Abbruch tut.
Eine alternative Lösungsmöglichkeit bietet die Nutzung von Feder-Masse-Systemen zur Modellierung dieser Stoßsituation.