Mam projekt wykorzystujący jsc3d do renderowania obiektu 3D. projekt musi dodać nowe akcesoria do aktualnej figury. Muszę sprawdzić, czy akcesorium koliduje z główną częścią, aby wyjściowe modele 3D mogły być drukowane przez drukarkę 3D. czy istnieje sposób na wykrycie kolizji w jsc3d?

0
luan nguyen 20 listopad 2019, 15:21

1 odpowiedź

Nie ma łatwej metody sprawdzania kolizji siatki 3D. Aby uzyskać dokładny wynik dla złożonych i/lub wklęsłych kształtów 3D, musisz sprawdzić każdy trójkąt obu kształtów pod kątem przecięcia. Może to być nieco powolne, w zależności od ilości wierzchołków, ale możliwa jest również pewna optymalizacja.

Istnieje kilka technik aproksymacji, które są szybsze niż sprawdzenie N*M wszystkich przecięć trójkątów:

  • przecięcie prostokątów ograniczających wyrównanych do osi
  • przecięcie sfer ograniczających
  • przecięcie obróconych ramek ograniczających
  • przecięcie walców ograniczających
  • ...lub dowolna kombinacja kształtów

JSC3D ma już wbudowaną strukturę AABB. W przypadku prostych siatek 3D, może możesz tego użyć. Sprawdzenie przecięcia 3D AABB jest naprawdę łatwe, zobacz także tę odpowiedź tutaj: Przecięcie dwóch pudełek w przestrzeni 3D

0
deblocker 4 grudzień 2019, 22:53