Entwickler-Ecke

Off Topic - SAT Kollisionserkennung


F34r0fTh3D4rk - Mo 17.07.06 18:53
Titel: SAT Kollisionserkennung
Hi, da ich immer noch eifrig davon überzeugt bin, dass ich es schaffe, eine 2d physik engine zu proggen, bin ich auch immer noch fleißig dabei, das problem, alles was ich finde, ist englisch und c++ :( natürlich sehr zum kotzen.

deshalb schaffe ich es auch nicht, eine implementation von SAT auf die Reihe zu bekommen.
SAT funktioniert so, dass geprüft wird, ob sich eine gerade finden lässt, die man zwischen die beiden packen kann. wenn das nicht geht, dann kollidieren sie.

hat jemand dazu deutsche tutorials ? delphi code ? sowas würde mich wirklich nen keks freuen, danke


mfg


Arno Nym - Mi 19.07.06 01:58

Hi!
also ich ehrlich gesagt verstehe ich dich nicht ganz.
Ich kenne SAT-Algorithmen aus der Aussagenlogik, es sind ja allgemein einfach Algorithmen die eine Problem so lange bearbeiten bis es eine zufriedenstellende Lösung hat. Also nicht unbedingt nur was mit Geraden...
Im übrigen, wenn es um eine 2-D Grafik-engine geht und um Geraden. Dann kann eine Kollisionserkennung ja nich so kompliziert sein oder ? muss man doch nur gucken ob sie den gleichen Anstieg haben.
Sollte ich was falsch verstanden haben, musst du dein Problem wohl nochmal genauer erklären.
Mit freundlichen Grüßen,
Arno Nym


F34r0fTh3D4rk - Mi 19.07.06 12:01

SAT ist die Abkürzung für Separation Axis Theorem und ist eigentlich eine sehr gute und einfache Möglichkeit der Kollisionserkennung. nur möchte ich genau wissen wie das funktioniert, ich hab da nur die theorie.

für 3d wäre das ganze wohl nur unwesentlich komplizierter, dort ist es dann wahrscheinlich das Separation Plane Theorem

mfg


Arno Nym - Mi 19.07.06 17:34

Hi!
von diesem Separated Axis Theorem hab ich noch nie gehört, vielleicht heißt es auch nochmal anders. Kannst ja mal den Link posten wo du die Theorie dazu gefunden hast, ich hab nämlich nich viel gefunden dazu.
Bezüglich den Polygonen, da würd ich ne stinknormale Klasse machen die eine Attribut Punkte vom typ Objektlist enthählt. In die du dann die Punkte (auch irgendne stinknormale einfache Klasse) reinschreibst. Könntest der Polygonklasse dann noch einige andere Eigenschaften geben oder Methoden die prüfen ob es geschlossen ist / konvex /konkav /selbstüberschneidend. usw.
Mit freundlichen Grüßen,
Arno Nym