Java3D: Gegenstände aufeinander zubewegen ohne Kollision

aze

Bekanntes Mitglied
Hi .Ich möchte in meiner 3D Welt zwei Gegenstände soweit aufeinander zubewegen so dass sie sich fast berühren.Die Behavior zur Kollisionserkennung(WakeupOnCollisionEntry,WakeupOnCollisionExit und WakeupOnCollisionMovement) scheinen mir dazu aber nicht geeigent den sie reagieren ja erst wenn die Kollision stattgefunden hat.Hat jemand ne Idee wie ich mein Vorhaben umsetzen kann ?

Schöne Grüße

Aze
 
Hmm..eigentlich muss ich nur die Distanz zwischen den beiden Objekten berechnen.Dann kann ich ja so vershcioeben wie ich möchte.Aber wie bestimme ich die Distanz.Kann man das irgendwie mit dem PickTool machen ?
 
Seit ungefähr 50 oder 60 Jahren wird an einem Thema geforscht, das man unter dem Begriff "Kollisionserkennung" zusammenfassen könnte. Eigentlich mußt du "nur" für die einzelnen Primitive (Punkte, Kanten, Dreiecke) der Geometrie paarweise den Abstand berechnen, und dann den geringsten dieser Abstände bestimmten. Wie man die damit verbundene quadratische Komplexität vermeidet, oder auch nur so etwas elementares macht wie den Abstand zwischen zwei Primitiven zu bestimmen, ist Gegenstand der o.g. Forschung. Reicht es in deinem Fall vielleicht schon, eine Bounding Box um die Objekte zu legen? Das würde die Sache "etwas" vereinfachen...
 
Hey Marco.Danke für die Antwort.Ich hab mir eine grobe Lösung einfallen lassen.Ich hab einfach die Abstände der zugehörigen TransformGroups genommen(beide Objekte hängen als einziges Objekt an je einer TransformGroup).Das klappt auch ganz gut
 
Naja. Das klappt umso besser, je "Kugelförmiger" die Objekte sind - ansonsten ist das die angedeutete Lösung, nur eben mit einer BoundingSphere statt einer BoundingBox 😉
 

Neue Themen


Zurück
Oben