Ich berechne das Ergebnis durch kollidierende Paare von konvexen 2D-Objekten (ohne Rotation), mit the basic equations on wikipedia. Wenn jedoch gibt es Abhängigkeiten, wie zwei Objekte ein anderes Objekt in der gleichen Zeit treffen:Wie werden mehrere gleichzeitige elastische Kollisionen behandelt?
Wie hier mit Objekten 1 und 2 3 an der exakt gleichen Zeit treffen, der paarweisen Ansatz scheitert . Abhängig von der Reihenfolge berechne ich die Kollisionen (1-3 zuerst oder 2-3 zuerst), ich werde unterschiedliche Ergebnisse erhalten. Wiederholte Iterationen durch die Kollisionen ergeben weiterhin auftragsabhängige Ergebnisse.
Ich habe es bereits eingerichtet, damit ich herausfinden kann, welche Objekte miteinander in Kontakt stehen, also weiß mein Code, wenn eines dieser Paare berechnet wird, dass Objekt 3 in diesem Moment mit einem anderen Objekt kollidiert 3 Kollision wird über die 2-3 Kollision wissen, und umgekehrt). Ich werde wissen, welche Kanten/Ecken mit was in Berührung kommen.
Was auch immer Lösung muss robust sein ... Zum Beispiel, wenn die Einrichtung komplizierter, wie diese zwei Beispiele hergestellt:
Der Prozess muss in der Lage sein, dass und schlechter zu behandeln. Jede mögliche Kette gleichzeitiger Kontakte/Kollisionen. Ich werde alle Daten zur Hand haben, um sie zu beschreiben, also muss ich "nur" wissen, wie man den allgemeinen Fall dieser Systeme löst. Ich mache gerade nichts mit Rotation, was die Dinge vereinfacht.
Es scheint, als würde es die Gruppierung von Objekten erfordern, aber die Interferenz, die durch Kanten verursacht wird, die nicht orthogonal sind (siehe das letzte Beispiel mit einem Sechseck), würde diesen Ansatz zum Scheitern bringen.
Ich sah a similar question, die zuvor gefragt wurde, aber die Antwort wurde nie überprüft (Sackgasse?). Ich bin mir nicht sicher, wie die Schockausbreitung auch mein erstes Beispiel lösen würde, da C sich nach der ersten Kollision wegbewegt ... also, welcher Schock soll sich ausbreiten? edit: Ok, ich sehe jetzt, dass gleichzeitige Kollisionen und Schockausbreitung zwei verschiedene Ideen sind, deshalb erschien es nicht sinnvoll.
Es gibt tatsächlich eine Antwort auf die Frage, die Sie verknüpfen, und das könnte sein, was Sie suchen. –
@AlexSzatmary Ich bin mir nicht sicher, wie dieser Ansatz auf mein erstes Beispiel anwendbar ist. Sobald eine Kollision auftritt, wird sich C wegbewegen ... Es gibt keinen Schock, der sich ausbreitet, wenn es um die zweite Kollision geht. – user173342