Ciągła detekcja kolizji między dwoma ruchomymi czworościanami

Moje pytanie jest dość proste. Mam dwie czworościany, każda z aktualną pozycją, liniową prędkością w przestrzeni, prędkością kątową i środkiem masy (właściwie środkiem obrotu).

Mając te dane, staram się znaleźć (szybki) algorytm, który precyzyjnie określiłby (1), czy zderzą się w pewnym momencie, a jeśli tak, to (2) po jakim czasie zderzyły się i (3) ) punkt zderzenia.

Większość ludzi rozwiąże ten problem, wykrywając kolizje w trójkąt-trójkąt, ale to zmarnuje kilka cykli procesora w przypadku operacji nadmiarowych, takich jak sprawdzanie tej samej krawędzi jednego czworościanu względem tej samej krawędzi drugiego czworościanu po sprawdzeniu różnych trójkątów. Oznacza to tylko, że trochę zoptymalizuję. Nie ma się o co martwić.

Problem polega na tym, że nie znam żadnego publicznego algorytmu trójkąta trójkątnego CCD (ciągłej detekcji kolizji), który uwzględniałby samobrót.

Dlatego potrzebuję algorytmu, który byłby wprowadzany w następujące dane:

dane wierzchołków dla trzech trójkątówpozycja i środek obrotu / masaprędkość liniowa i prędkość kątowa

I wyświetli:

Czy jest kolizjaPo jakim czasie doszło do kolizjiW którym punkcie w kosmosie doszło do kolizji

Z góry dziękuje za twoją pomoc.

questionAnswers(7)

yourAnswerToTheQuestion