Zweidimensionaler elastischer Stoß mit Kreisen

Hallo,

ich habe zwei Kreise, die sich beide aufeinander zubewegen.

Wie bekomme ich raus, in welche Richtung und wie schnell sich die beiden Kreise nach der Kollision bewegen?

Ich hoffe, ich habe es einigermaßen verständlich erklärt.

David

Hallo,

ich habe zwei Kreise, die sich beide aufeinander zubewegen.

Wie bekomme ich raus, in welche Richtung und wie schnell sich
die beiden Kreise nach der Kollision bewegen?

Ich nehme an, dass Du mit den „Kreisen“ Scheiben oder Kugeln meinst. Dann brauchst Du beide Massen und eine Geschwindigkeit. Vllt. sind auch 2 Geschwindigkeiten genannt.
Lösen kannst Du die Aufgabe mit den Gesetzen für den z. B. vollkommen elastischen Stoß (wenn nichts andere gesagt ist).

Gruß:
Manni

Ja, ich meine Kugeln.
Ich möchte das gerne programmieren.
Deswegen habe ich eine Funktion, die die Kugeln bewegt. Jede Kugel hat ihre eigene Geschwindigkeit, zum Beispiel hat Kugel 1 eine Geschwindigkeit von x: 1 Pixel pro Aufruf und y: 0,7 Pixel pro Aufruf. Die Massen sind gleich.

Danke,
David

Hi David,

Daran hab ich auch mal ne ganze weile rumgebastelt :wink:
Am besten du überlegst dir das ganze zuerst mal für zwei gleichschwere Kugeln/Scheiben/… und vernachlässigst Rotation (was du sicher sowieso vorhattest).

Hilfreich wären Kenntnisse der Vektorrechnung. Da du sich nicht von einem zentralen Stoß ausgehst müssen wir das Problem zunächst auf einen solchen reduzieren. Wie damit umzugehen ist findest du in jedem Tafelwerk, das ist aber für gleichschwere Kugeln hier auch erstmal egal.

Ich hoffe ich schaff das verständlich auszudrücken:
Kollidieren die beiden Kugeln, so musst du zunächst die Geschwindigkeitsvektoren auf jene Gerade projezieren, die die beiden Mittelpunkte der Kugeln verbindet. Entlang dieser kannst du das ganze jetzt als zentralen Stoß betrachten. Für gleichschwere Kugeln ist es ganz einfach. Du überträgst einfach die projezierte GEschwindigkeit der einen Kugel auf die andere und umgekehrt, d.h. ist jetzt vp1 die projezierte Geschwindigkeit der 1. Kugel und vp2 die der zweiten, so addiert du vp1 zur Geschwindigkeit der zweiten Kugel, addierst vp2 zur Geschwindigkeit der ersten Kugel, ziehst vp1 von der Geschw. der ersten Kugel ab und ziehst vp2 von der GEschw. der zweiten Kugel ab. Dann sind die GEschwindigkeiten der Kugeln für nach dem Stoß fertig berechnet.

Beachte immer, dass die Geschwindigkeiten und vp1, vp2 hier Vektoren und keine Skalare (Zahlen) sind.

Beim übergang zu verschieden schweren Kugeln bietet es sich dann vielleicht besser an mit Impulsen anstelle von Geschwindigkeiten zu rechnen.

Ich hoffe ich konnte ein wenig weiter helfen.
MfG IGnow

Hallo!

Wenn die Kugeln gleich sind (gleicher Radius, gleiche Masse), passiert folgendes:

  1. Betrachtung im Schwerpunktsystem (Vorteil: Einfach, Nachteil: Unanschaulich): Die beiden Kugeln bewegen sich mit den Geschwindigkeiten v1 und v2 aufeinander zu. Es gilt v1 = -v2. Danach bewegen sie sich mit den Geschwindigkeiten u1 und u2 von einander weg. Auch hier gilt u1 = -u2. Wegen der Erhaltung der Energie gilt außerdem v1 = u1 = -v2 = -u2. Man denke sich eine Gerade durch beide Mittelpunkte der Kreisscheiben wenn sie sich gerade berühren. Sei nun der Winkel der Einfallsrichtung mit dieser Geraden α1 = α2, dann fliegen die Kugeln im Winkel β1=-α1 und β2=-β2 weg.

  2. Betrachtung im Ruhesystem einer Kugel (Vorteil: Anschaulich, Nachteil: Kompliziert): Die Kugel 1 bewegt sich auf die Kugel 2 zu: v1 = …, v2 = 0. Wieder denken wir uns die die Gerade durch die Mittelpunkte. Dann machen wir eine Vektorzerlegung. v1(axial) wird voll auf die zweite Kugel übertragen: u2 = v1(axial). v1(tangential) überhaupt nicht, also: u1 = v1(tangential). Dabei bilden u1 und u2 stets einen rechten Winkel und sie spannen einen Kreis auf, in dem v1 der Durchmesser ist. (Grund: Weil u1 und u2 rechtwinklig sind, bilden sie zusammen mit v1 ein rechtwinkliges Dreieck. Wenn man in einem rechtwinkligen Dreieck über der Hypothenuse einen Halbkreis errichtet, so liegt treffen sich die Katheten immer auf der Kreislinie. Das nennt sich Thales-Kreis)

  3. Betrachtung in einem beliebigen System: (Vorteil: keiner, Nachteil: Kompliziert und unanschaulich) …

Für Formeln bin ich gerade zu faul, aber vielleicht hilft Dir ja dieses bisschen Geometrie weiter.

Michael

Hi David,

Hi IGnow,

Kollidieren die beiden Kugeln, so musst du zunächst die
Geschwindigkeitsvektoren auf jene Gerade projezieren, die die
beiden Mittelpunkte der Kugeln verbindet.

Das habe ich leider nicht verstanden.

David

Hallo,

ich habe zwei Kreise, die sich beide aufeinander zubewegen.

Wie bekomme ich raus, in welche Richtung und wie schnell sich
die beiden Kreise nach der Kollision bewegen?

daß Du hier Kugeln meinst welche gleiche Abmessungen und Masse
haben wurde ja schon geklärt.Dies vereinfacht es etwas, bleibt aber
trotzdem ziemlich kompliziert.
Die Flugrichtung zueinander (verschieden von 180 Grad) und vor allem
der Berührungspunkt am halben Umfang erfordern schon einen
ziemlichen Aufwand um überhaupt erst einmal diesen Berührungspunkt
zu ermitteln.Die Wahl des Bezugssystems (Michael hatte es schon
angesprochen) und die Ermittlung der wirksamen Stoßkomponenten
in Richtung der Verbindungsachse der Kugelmittelpunkte ist dann
etwas leichter.
Um dies etwas zu erläutern:
Stell Dir vor der Winkel wäre nicht beliebig sondern die Kugeln
würden nur rechtwinklig aufeinander zufliegen.
Die Stoß-Berührung der Kugeln wäre jeweils auf ihren halben Umfang
möglich mit jeweils anderer Wirkung in Richtung und Betragsgröße.
Sind die Geschwindigkeitsvektoren unterschiedlich gibt es da aber
Unverträglichkeiten, dh.,manche Punkte auf dem jeweils halben
Kugelumfang können sich garnicht berühren.
Auf jeden Fall ist dies zum Programmieren eine sehr interessante
Aufgabe vor allem, wenn man noch verschiedenen Umfang der Kugeln,
und verschiedene Massen berücksichtigen würde und natürlich
beliebige Winkel (was Deiner Aufgabenstellung entspricht)
Hier wirst Du kaum eine komplette Antwort bekommen können. Die
Überlegungen sind zu umfangreich.
Die Hauptaufgabe ist die Ermittlung der Berührungsgeometrie.
Um die Aufstellung einer bezogenen Bewegungsgleichung für jede
Kugel zum System wird man da nicht vorbei kommen.
Gruß VIKTOR

Hallo,

ZU diesem Thema habe ich dieses Java-Programm geschrieben :
http://www.kanitrino.de/PageDE/HuepfBall.html

Mfg
Klaus

Moin,

schön, aber da ist Gravitation eingebaut, stimmts?

Gruß
Olaf

Hallo!

Die Flugrichtung zueinander (verschieden von 180 Grad) und vor
allem
der Berührungspunkt am halben Umfang erfordern schon einen
ziemlichen Aufwand um überhaupt erst einmal diesen
Berührungspunkt
zu ermitteln.

Von Hand stimmt das, aber numerisch ist das gar nicht so schwierig. Im zweidimensionalen haben die Mittelpunkte die Position

a = (a1, a2) und b = (b1, b2)

Der Differenzvektor ist

c = b - a = (b1 - a1, b2 - a2).

Die Kugeln berühren sich dann und nur dann, wenn

|c| = 2r.

Die Position des Berührpunktes ist a + 0,5 * c.

Die Axialgeschwindigkeit ist v_ax = * c.
Die Tangentialgeschwindigkeit ist v_ta = v - v_ax.

soll hier das Skalarprodukt sein. a, b, c, v, v_ax und v_ta sind Vektoren.

Das war schon alles, was man braucht. Die Rechnung beim Computer wird ja wesentlich dadurch erleichtert, dass man nicht im Vorhinein eine analytische Lösung braucht, sondern das ganze iterativ berechnen kann.

Michael

… und schöne Seite übrigens, da habe ich gleich Weihnachten was zum Spielen.

Hallo Michael

Die Flugrichtung zueinander (verschieden von 180 Grad) und vor
allem
der Berührungspunkt am halben Umfang erfordern schon einen
ziemlichen Aufwand um überhaupt erst einmal diesen
Berührungspunkt
zu ermitteln.

Von Hand stimmt das, aber numerisch ist das gar nicht so
schwierig.

schon, bei dieser relativ einfachen (rechtwinkl.) Situation.
Aber:
verschiedene Geschwindigkeiten (Geschwindigkeitsvektoren)
beliebige Winkel.
Dies ist in der Aufgabe doch gefordert.
Bei verschiedenen Durchmessern wird es noch komplizierter.

Das war schon alles, was man braucht.

Schön wär’s.

Die Rechnung beim
Computer wird ja wesentlich dadurch erleichtert, dass man
nicht im Vorhinein eine analytische Lösung braucht, sondern
das ganze iterativ berechnen kann.

Das ist richtig, doch scheint es mir hier doch schwierig.
Ich würde erst mal die analytische Lösung angehen auch wenn ich
iterative Lösungswege mit Computerprogrammen liebe.
Gruß VIKTOR

Hallo Klaus,

so ungefähr möchte ich das machen, bloß ohne Gravitation.

Könntest du bitte erklären, wie du vorgegangen bist und was du genau gemacht hast?

Hallo Viktor!

Das war schon alles, was man braucht.

Schön wär’s.

Was fehlt?

Die Rechnung beim
Computer wird ja wesentlich dadurch erleichtert, dass man
nicht im Vorhinein eine analytische Lösung braucht, sondern
das ganze iterativ berechnen kann.

Das ist richtig, doch scheint es mir hier doch schwierig.
Ich würde erst mal die analytische Lösung angehen auch wenn
ich
iterative Lösungswege mit Computerprogrammen liebe.

Wozu? Es wurde danach gefragt, wie das mit einem PC gelöst werden kann. Warum sollen wir dem PC jetzt auch noch die Arbeit abnehmen?

Michael

Hallo Michael,

Das war schon alles, was man braucht.

Schön wär’s.

Was fehlt?

vieles.

Im zweidimensionalen haben die Mittelpunkte die Position
a = (a1, a2) und b = (b1, b2)
Der Differenzvektor ist
c = b - a = (b1 - a1, b2 - a2).
Die Kugeln berühren sich dann und nur dann, wenn
|c| = 2r.
Die Position des Berührpunktes ist a + 0,5 * c.

Du kannst zwar sich berührende Kugeln darstellen.Ob eine solche
Konstellation aber überhaupt unter Berücksichtigung der variablen
Parameter möglich ist wird von Dir, mit der bekannten Geometrie
zweier sich berührenden Kreise, überhaupt nicht mit einem Lösungs-
ansatz vorgestellt.
Hier müssen die „Bewegungsgleichungen“ beider Kugeln berücksichtigt
werden(Ort(x,y) = Funktion von Zeit)welche unabdingbar sind.
Ob man daraus eine explizit lösbare Gleichung des Abstandes zweier
Kreismittelpunkte generieren kann weiß ich jetzt nicht.

Die Rechnung beim
Computer wird ja wesentlich dadurch erleichtert, dass man
nicht im Vorhinein eine analytische Lösung braucht, sondern
das ganze iterativ berechnen kann.

Das ist richtig, doch scheint es mir hier doch schwierig.
Ich würde erst mal die analytische Lösung angehen auch wenn
ich
iterative Lösungswege mit Computerprogrammen liebe.

Wozu? Es wurde danach gefragt, wie das mit einem PC gelöst
werden kann.

Der PC macht dies nicht allein - Du mußt vorher programmieren.

Warum sollen wir dem PC jetzt auch noch die Arbeit abnehmen?

Eben, die Arbeit muß der Programmierer erst mal leisten.
Du weißt nicht wie man das angehen kann und hast auch keine Antwort dazu gegeben.
Auch die analytische Lösung kann man programmieren und wird dies tun
bis man auf explizit unlösbare Gleichungssysteme stößt.
Klaus Wernicke (s.oben) hat da ein hübsches Programm erstellt.
Hier ist tatsächlich die interative Methode sinnvoll, da die
Position vieler Objekte zu gleicher Zeit abgefragt werden muß und
dann der Abstand aller Objekte jeweils zueinander zu berechnen ist.
Nach jedem Stoß ist aber eine neue Bewegungsgleichung der beiden
Objekte zu erstellen.Eine interessante programmiertechnische Aufgabe
Es wäre dies ein Programm kombiniert mit analytischen und iterativen
Lösungen.
Gruß VIKTOR

Hallo,

Hier müssen die „Bewegungsgleichungen“ beider Kugeln
berücksichtigt werden(Ort(x,y) = Funktion von Zeit)welche
unabdingbar sind.

die braucht man doch sowieso, oder was genau willst Du sonst simulieren? Und nach jedem iterativen neuen Bewegungsschritt mal eben den Abstand der beiden Kugelmittelpunkte zu berechnen sollte doch wohl wirklich nicht das Problem sein.

Ob man daraus eine explizit lösbare Gleichung des Abstandes
zweier Kreismittelpunkte generieren kann weiß ich jetzt nicht.

Das ist der Abstand zweier Punkte in einer Ebene. Das solltest Du grad noch hinkriegen, meinst Du nicht?

Gruß
loderunner

David,

Könntest du bitte erklären, wie du vorgegangen bist und was du
genau gemacht hast?

Das ist ein Java-Programm, das ich vor ein paar Jahren geschrieben habe. Ich habe ganz schön daran rumgerechnet, mit Sinus & so. Bei einer Computeranimation geht es darum- sagen wir alle 50 Millisekunden - ein neues Bild zu zeichnen und ständig den x- und den Y-Wert für das jeweils nächste Bild zu berechnen.

Es handelt sich um einen dezentralen elastischen Stoß mit gleichen Massen in 2D. Gück Dir mal die Animation unter http://de.wikipedia.org/wiki/Sto%C3%9F_(Physik) , Abschnitt „zweidimensionaler elastischer Stoß“. Da ist mit dem Thaleskreis beschrieben, mit welchen Winkeln und mit welcher Geschwindigkeit die Münzen nach dem Stoß voneinander weggehen, die ruhende Münze entlang der Verbindungslinie der Mittelpunkte, die andere senkrecht Winkel dazu. Die Geschwindigkeiten ergeben sich aus dem Thaleskreis.

Da man von einer bewegten und einer ruhenden Münze ausgeht, muss man zunächst die eine (mathematisch) in Ruhe versetzen, indem man ihre Geschwindigkeit von beiden Münzen abzieht und hinterher wieder dazuzählt.

Wenn Du den Code haben willst, schreib mir eine e-Mail.

MfG
Klaus

Hallo,

Hier müssen die „Bewegungsgleichungen“ beider Kugeln
berücksichtigt werden(Ort(x,y) = Funktion von Zeit)welche
unabdingbar sind.

die braucht man doch sowieso, oder was genau willst Du sonst
simulieren?

sowieso ist keine Antwort.Die Bewegungsgleichungen wurden hier
nicht präsentiert - der Fragesteller braucht einen praktikablen
Ansatz zum programmieren - s.unten. sonst würde er nicht fragen.

Ob man daraus eine explizit lösbare Gleichung des Abstandes
zweier Kreismittelpunkte generieren kann weiß ich jetzt nicht.

Das ist der Abstand zweier Punkte in einer Ebene. Das solltest
Du grad noch hinkriegen, meinst Du nicht?

Du wirst es mir gleich präsentieren.

Die Bewegungsgleichungen zweier Punkte sind:
x1=X1+v1x*t
y1=Y1+v1y*t

x2=X2+v2x*t
y2=Y2+v2y*t

die Abstandsgleichung
d1,2=r1+r2=sqr((x1-x2)^2+(y1+y2)^2)

Nun generiere mir mal aus diesen Gleichungen t für d=r1+r2

Ich habe nicht behauptet, daß es nicht geht, nur - ich habe es im
Moment nicht drauf.
zur Information, damit es keine Unklarheiten gibt.
X und Y sind Startkoordinaten bei t=0
r1 und r2 die Radien der Berührungskreise
t natürlich die Zeit, ohne die geht hier nix.
Es gibt natürlich da auch mehrere Lösungen.
Außerdem gibt es Berührungspositionen zweier Kreise welche mit
der Bewegungsgeometrie unverträglich sind.
Ich gehe mal davon aus, daß Dir diese Aussage keine Kopfzerbrechen
bereitet und erläutere sie nicht.
Gruß VIKTOR

Hallo,

Hier müssen die „Bewegungsgleichungen“ beider Kugeln
berücksichtigt werden(Ort(x,y) = Funktion von Zeit)welche
unabdingbar sind.

die braucht man doch sowieso, oder was genau willst Du sonst
simulieren?

sowieso ist keine Antwort.

Ach so? Dann erzähl uns doch mal, wie Du simulieren willst, wenn Du gar nicht weißt, was sich wie bewegt.

Die Bewegungsgleichungen wurden hier nicht präsentiert

Wäre ja auch ziemlich sinnfrei, wenn das auf zwei bestimmte Gleichungen beschränkt wäre, findest Du nicht?

  • der Fragesteller braucht einen praktikablen
    Ansatz zum programmieren - s.unten. sonst würde er nicht
    fragen.

Und? Wie würdest Du denn die Bewegung der Kugeln im Programm eingeben wollen, wenn nicht in Form einer Bewegungsgleichung? Malen? Per Filmaufnahme? Zufall? Oder wie?

Ob man daraus eine explizit lösbare Gleichung des Abstandes
zweier Kreismittelpunkte generieren kann weiß ich jetzt nicht.

Das ist der Abstand zweier Punkte in einer Ebene. Das solltest
Du grad noch hinkriegen, meinst Du nicht?

Du wirst es mir gleich präsentieren.

Nö, das kannst Du selber.

Gruß
loderunner

Hallo,

  • der Fragesteller braucht einen praktikablen
    Ansatz zum programmieren - s.unten. sonst würde er nicht
    fragen.

Und? Wie würdest Du denn die Bewegung der Kugeln im Programm
eingeben wollen, wenn nicht in Form einer Bewegungsgleichung?

ich habe in meinem Betrag die Bewegungsgleichungen formuliert.
Hier in unserem Disput geht darum, ob eine explizite Lösung

  • hier für die Zeit t - gefunden werden kann.
    Wenn nicht, geht dies eben nur interativ in Zeitschritten im
    Computerprogramm.

Ob man daraus eine explizit lösbare Gleichung des Abstandes
zweier Kreismittelpunkte generieren kann weiß ich jetzt nicht.

Das ist der Abstand zweier Punkte in einer Ebene. Das solltest
Du grad noch hinkriegen, meinst Du nicht?

Du wirst es mir gleich präsentieren.

Nö, das kannst Du selber.

Du kannst das nicht.Der Abstand zweier Punkte in einer Ebene ist
nicht das Problem .Die banale Formel dafür wurde in meiner
Darstellung schon eingebunden.
Die Suche nach den Koordinaten dieser Punkte ist das Problem.
Du blickst offensichtlich nicht durch, kannst nur schlaue Sprüche.

Gruß VIKTOR