 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 10.10.2013, 15:41 Titel: Kollisionserkennung - Mauer, Hindernis, ... |
|
|
Ich habe schon mehrfach überlegt, ein Programm zu schreiben, wo eine Kugel sich in einem Raum bewegt und bei Hindernissen, abprallt bzw. die Richtung ändert.
Zum Beispiel: Snooker Billiard, Kegeln, Golf, Fußball, ...
Welche Möglichkeiten gibt es zur Kollisionserkennung?
Wie mache ich es, wenn die Kugel auf eine Schräge trifft? Bzw. welche Richtung hat dann die Kugel bei einer Schräge?
Bei einer Geraden Mauer ist es klar welche Richtung die Kugel dann hat! Aber bei einer schrägen Mauer? Oder einem Kreis? Wie ist es da dann?
Stehe etwas auf dem Schlauch momentan!
Gruß
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 10.10.2013, 20:11 Titel: |
|
|
Du kannst mit eigentlich (da es sich prinzipiel nur um 2D handelt) ganz einfach mit dem "satz des pyragoras" arbeiten. Damit kannst du den abstand zu den objekten ermitteln, und bei überschreitung eines definierten wertes aus der "rollrichtung" die neue rollrichtung ermitteln.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 10.10.2013, 21:22 Titel: |
|
|
Aus meiner Sammlung:
http://www.dreael.ch/Deutsch/Download/Billard-Simulation.html
Hier sind derartige Algorithmen implementiert. Grundprinzip: Beide Kugeln bewegen sich, Du musst mittels geeigneter Gleichung den Zeitpunkt des Zusammentreffens (bzw. kein Zusammentreffen; man bemerkt dies anhand eines negativen Wertes in der Wurzel, dass es dann keinen Zusammenstoss gibt) berechnen. Weil natürlich mehr als 2 Kugeln unterwegs sind: Jede Kugel zu jeder Kugel diese Berechnung durchführen, das zeitlich früheste Ereignis passiert dann auch -> Kugeln werden umgelenkt -> Somit alte Berechnungen verwerfen, dafür mit der neuen Richtung und Geschwindigkeit die Zusammenstoss-Zeitpunkte berechnen und wieder das früheste als nächstes stattfindendes Ereignis verwenden.
All das macht das Beispiel aus meiner Sammlung. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|