2009-07-12 22 views
1

Ich suche einen ziemlich einfachen Algorithmus für eine Kollisionserkennung mit zwei dreidimensionalen Dreiecken, die sich ständig bewegen können (eher besser, wenn die auch beschleunigen könnten). Ich habe eine Methode gefunden, um dieses Problem zu lösen, aber das ist schwierig mit der Bewegung der zwei dreidimensionalen Dreiecke.Kollisionserkennung von Dreiecken in 3D mit etwas Bewegung

+1

Ist jedes Dreieck ein 2D-Dreieck? (Es sollte sein, sonst sollte es kein Dreieck genannt werden, sondern zB eine Pyramide etc.). Nur Überprüfung. –

Antwort

3

Zunächst einige Begriffe zu klären:

Kreuzung Erkennung wird Ihnen sagen, wenn zwei Dinge sich schneid sind.

Kollisionserkennung wird zeigen, ob zwei Dinge kollidieren.

Hier gibt es einen Unterschied. Wenn sich ein Objekt [Polygon A] schnell bewegt und Schnitttests verwendet werden, ist es möglich, dass es sich nicht schneidet, über Polygon B hinausgeht und sich auf der anderen Seite befindet, die sich auch nicht schneidet.

Kollisionserkennung, auf der anderen Seite wird sagen, "Polygon A kollidiert mit Polygon B". Es gibt einen subtilen Unterschied, also ist die Aussage "Kollision ... mit etwas Bewegung" etwas überflüssig.

Die einfachste Möglichkeit zur Kollisionserkennung besteht darin, die Polygone im Verlauf des Zeitschritts auszufällen und mit den resultierenden Polygonen Schnitttests durchzuführen.

Wie dem auch sei:

This page enthält viele Informationen über die Bestimmung, ob zwei Formen schneidet.

This page bezieht sich speziell auf Strahlen, Ebenen und Dreiecke und enthält Quellcode.