AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Konzept für saubere Kollisionserkennung
Thema durchsuchen
Ansicht
Themen-Optionen

Konzept für saubere Kollisionserkennung

Offene Frage von "Florian H"
Ein Thema von Florian H · begonnen am 20. Jul 2009 · letzter Beitrag vom 20. Jul 2009
Antwort Antwort
Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Re: Konzept für saubere Kollisionserkennung

  Alt 20. Jul 2009, 14:36
hallo, mit der problematik habe ich mich auch schon eingehend beschäftigt!
Möglichkeit 1
Eigentlich so, wie du es gemacht hast, prüft ob der radius einer Koordinate irgendwo in einem anderen Radius drinnhängt; falls ja:
Kollisionsroutine, in der mit der Formel des elastischen Stosses die Geschwindigkeiten berechnet werden.
Außerdem hab ich eine boolsche Variable für jedes Objekt, die dafür sorgt, dass kein Viech mit einem anderen Viech immer wieder kollidiert, weil die beiden Kreise noch ineinander hängen und sich so verkeilen [schöner bug =) ] Nach jedem Vorgang wird die "kollidiert gerade"-Variable aller Objekte, die nirgendwo drinhängen, wieder auf 'false' gesetzt.
Vorteil: Funktioniert schnell und tadellos, auch mit vielen [ca.200] Objekten und einigermaßen physikalisch korrekt.
Nachteil: Falls 2 Kugeln oder mehr gleichzeitig auf eine Kugel drauffallen, muss man was extra programmieren, da das sonst einen Bug auslöst; Zuweilen kommt es vor, dass Kugelhaufen entstehen, die sich völlig seltsam verhalten [selten]

Möglichkeit 2:
Es wird bei jedem "Bewegungsvorgang" geprüft, ob die Kugel irgendwo reinfallen "könnte", falls das der Fall sein sollte, wird die zu berechnende Zeit so lange verringert, bis der Abstand zu dem Kollisionsobjekt einen Grenzwert besitzt (~0). Wenn dieser Wert erreicht wird, können die Geschwindigkeiten oder sogar Verformungen berechnet werden.
Vorteil: perfekt, um Verformungen und physikalisch korrekte Bewegungen berechnen und visualisieren zu können.
Nachteil: Bisweilen ist der Rechenaufwand so groß, dass die Bewegungen nicht mehr zeitlich korrekt ausgeführt werden; Große Objektanzahlen sind nahezu unmöglich.
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz