Diskussion zum Thema Kollision und Reflexion - Elastischer Stoß

  • C#

Es gibt 50 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    @ErfinderDesRades Ich hab mir mal Deine RacketCollision() angesehen.
    Das ist eigentlich nicht weiterschlimm.
    Wenn sich der Kugelmittelpunkt innerhalb der parallelen Fortsetzungen der Kanten (rechte Kugel) erfolgt eine Reflexion an einer Wand nach Schema F.


    Wenn sich der Kugelmittelpunkt außerhalb der parallelen Fortsetzungen der Kanten befindet (oben linke Kugel), muss der Abstand und der Winkel zur Ecke bestimmt werden.
    Die Reflexion erfolgt dann wie skizziert, alle Hilfs-Winkel sind n*90° oder n*45°.


    ====
    Das gilt bei ruhendem Schläger.
    Bei bewegtem Schläger müssen wir noch mal die Vektoren hinmalen, aber das sollte do sein, wie beim Stoß zweier Kugeln.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()

    @VB3-Guru Ich muss mich bei Dir entschuldigen.
    Klar, Festkörperphysik beschreibt die Kräfte zwischen den Atomen und Molekülen,
    Wir haben hier eine Lösung der klassischen Mechanik diskutiert.
    Irgendwo war da ein Kontakt unterbrochen, da war etwas zu viel Stress in der Leitung. :whistling:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    @VB3-Guru Ich muss mich bei Dir entschuldigen.


    Das ist nett, aber wofür denn entschuldigen?

    RodFromGermany schrieb:

    Irgendwo war da ein Kontakt unterbrochen, da war etwas zu viel Stress in der Leitung.


    Kontakt unterbrochen lag wohl daran, dass ich nicht so häufig hier reinschaue und ich noch ein paar andere Projekte bearbeite.
    Mein Angebot die Unterschiede zw. den 2 Arten der Kollisionssimulation herauszuarbeiten steht noch. Allerdings kann ich nur VB6 so richtig. Mit VB.Net hab ich noch gewisse Probleme.

    RodFromGermany schrieb:

    Wenn sich der Kugelmittelpunkt außerhalb der parallelen Fortsetzungen der Kanten befindet (oben linke Kugel), muss der Abstand und der Winkel zur Ecke bestimmt werden.
    Die Reflexion erfolgt dann wie skizziert, alle Hilfs-Winkel sind n*90° oder n*45°.


    @Eckard
    Diese Aussage bereitet mir Bauchschmerzen. D.h. das geht auch koninuierlich, also nicht nur in 45°-Schritten. Ich hab hierfür vor Jahren mal eine kleine Simulation gemacht (allerdings VB6). Es gibt da einen kleinen Kniff der zu beachten ist 8-) Source hab ich nie veröffentlicht, da ich ne Preisfrage draus machen wollte.
    ActiveVb.de/members/klaus/Phys…SchieferStoss/Bounce2.exe

    Beste Grüße
    @VB3-Guru "Kontakt" bezog sich auf meine Gehirnwindungen. ;)
    Entschuldigung dafür, dass ich Deine richtige Darstellung wegen der schlechten Qualität Deines Quellcodes und Deiner Strict-Off-Einstellung ignoriert habe.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany

    na dann machen wir doch einfach mal Nägel mit Köpfen und versuchen Probleme zu lösen anstatt uns mit Kleinlichkeiten aufzuhalten.
    Also:
    1. gerader Stoss mit gleichen Massen und Impulsübertrag sobald eine Mindestdistanz unterschritten ist.
    2. Iterative Annäherung an den Stoßzeitpunkt (Problem ist gelöst)
    3. Schiefer Stoß (Problem ist gelöst)
    4. Vergleich zw. "mechanischem" Stoßprozess und Stoßprozess zw. geladenen Teilchen
    5. Stoßprozess mit berücksichtigung der Coulombkräfte zw. 2 Billard-Kugeln
    6. usw
    7. usw
    .
    .
    10. usw

    Ich kann meist nur Source in VB6 liefern, aber der ErfinderdesRades kann uns hier helfen.

    Ich bin mir der Tatsache bewusst, dass ich in diesem Forum nur zu Gast bin und ich möchte ja nicht hier die Themen klauen, aber man könnte sich ja auch mal eine forenübergreifende Zusammenarbeit vorstellen.

    Also haben wir eine Zusammenarbeit? Schaffen wir das?

    Gruß,

    Klaus

    VB3-Guru schrieb:

    Schaffen wir das?
    Klar doch.
    Und VB6 kann ich auch noch lesen. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB3-Guru schrieb:

    bist du dabei?
    Steht doch schon da.

    RodFromGermany schrieb:

    Klar doch.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ErfinderDesRades
    Nö, das ist was Anderes: Also Kollisionserkennung per Iterationsverfahren...
    Aber egal, ich komm momentan eh nicht dazu.

    @RodFromGermany
    Sorry ich muss das wegen Arbeitsüberlastung vertagen, werd es aber nicht vergessen. Ist Teil meines zu schreibenden Buches.

    Klaus

    VB3-Guru schrieb:

    @ErfinderDesRades: bist du dabei?


    Mannmannmann - ich hab ein Gedächtnis...

    Bin grade zufällig drüber gestolpert, dassich doch eine ziemlich feine Lösung der meisten Probleme in Schublade hab.
    s. Anhang.
    Das ist ne ganz feine Oberfläche, wo herumfliegende Bälle gezeichnet werden, und man kann sie sogar mit der Maus herumziehen / umpositionieren.
    Und für die Kräfte, die wirken, ist eine eigene Klasse gecodet, mit bisher Methoden für:
    • BallKollision
    • WandKollision
    • Zentrum-Gravitation
    • Überflieger (Bälle die so schnell werden, dass sie die Wand quasi "durchschlagen")
    • Und Reibung gibts auch, wenn wolle
    Da kann man nun beliebige weitere Kräfte zufügen, bzw. die bestehenden nach Belieben abwandeln.
    Etwa die elastische Kraft ist ganz uncoulombmässig: ist eher eine überproportionale Druckfeder, deren Rückstellkraft unendlich wird, wenn man sie auf 0 zusammendrückt.

    Nachwievor willich nicht mitmachen, aber als Vorlage für euer Projekt könnte das ganz nützlich sein.

    Das Readme findich grad auch wieder sehr interessant - eiglich sollte das Projekt eine Optimierungs-Aufgabe lösen (dichteste Packung verschieden grosser Bälle).

    Aber man könnte auch eine Planeten-Simulation davon machen.
    Dateien