Rozumiem, że trójkąt wykrywa kolizję trójkątną między 2 trójkątami. Czy ktoś może wyjaśnić, w jaki sposób mogę użyć tego obiektu 3D złożonego z 1000 wierzchołków? Jak utworzyć listę trójkątów dla każdej siatki? Czy muszę wziąć każdą permutację wierzchołków? To mogłoby doprowadzić do O (n^3), które uważam za bardzo złe.Wykrywanie kolizji trójkątów do trójkątów w 3D
Jak mogę to uogólnić?
Będę wymagał odczytania danych z formatu. Jeśli wszystko inne zawiedzie, czy ktoś może zaproponować format, który sprawia, że Siatka z trójkątów? Potrzebowałbym również katalogu siatek dla tego formatu, przynajmniej na początek.
Dziękuję bardzo.
Jest w to wiele pytań i wszystkie powinny być zadawane osobno, zamiast ułożyć w jedno pytanie. Zazwyczaj "obiekt 3D", z którym mógłbyś pracować, to nie tylko chmura punktów (http://en.wikipedia.org/wiki/Point_cloud), zazwyczaj jest to [wielobokowa siatka] (http: //en.wikipedia.org/wiki/Polygon_mesh) i/lub zestaw krzywych 3D. Jeśli naprawdę zaczynasz od chmury punktów, możesz chcieć sprawdzić algorytmy, które są zaprojektowane do tworzenia siatek wieloboków z chmur punktów, zanim zaczniesz pracować nad wykrywaniem siatek-> nakładanie siatek. –
Gdy masz już siatkę wieloboków, zacznij stosować optymalizacje, o których rozmawiają Gareth/James, aby uniknąć porównania każdego trójkąta w jednej siatce z każdym trójkątem w drugiej siatce. To nigdy nie będzie dotyczyć każdego * możliwego * trójkąta, który mógłby zostać utworzony ze wszystkich wierzchołków każdej siatki, jak wydaje się to sugerować twoje pytanie. Ale każdy trójkąt w siatce -> każdy trójkąt w drugiej siatce jest wciąż powolny, dlatego optymalizujesz dalej :) –