Metoda obliczania środka masy z pliku .stl (litografia stereo)?

Próbuję obliczyć współrzędne środka masy (x, y, z) obiektu zdefiniowanego w pliku STL (litografia stereo, nie należy mylić ze standardową biblioteką szablonów). Plik STL zawiera zamknięty obiekt (lub obiekty) zdefiniowany przez granicę złożoną z trójkątów. Same trójkąty niekoniecznie są w dowolnej kolejności, plik jest po prostu współrzędnymi 3 wierzchołkami każdego trójkąta unoszącymi się w przestrzeni 3D plus wektor normalny do trójkąta (norma nie powinna być brana pod uwagę, ponieważ nie zawsze jest wykonywana prawidłowo). Nic nie łączy żadnego trójkąta ze sobą, zakłada się, że obiekt jest zamknięty.

Jednym prostym podejściem byłoby podzielenie objętości (w tym przypadku pola) na miliony elementów i określenie, czy każdy element znajduje się wewnątrz obiektu zdefiniowanego w pliku STL, czy nie, a następnie zsumowanie momentów i obliczenie środka masy. To by działało, ale nie jest eleganckie i bardzo powolne.

Inną metodą byłoby przekształcenie reprezentacji granicy w pewną liczbę brył upakowanych czworościanów. Forma, którą mógłbym obliczyć jako środek masy każdego czworościanu, jego objętość i wynikowy moment, a tym samym obliczyć całkowity środek masy z sumy wszystkich czworościanów. Problem z tym polega na tym, że nie wiem, jak przekształcić reprezentację powierzchniową trójkątów w reprezentację objętościową czworościanów (zakładam, że jest to dość proste zadanie).

Czy ktoś zna jakieś metody lub wymyśli jakieś metody, które mógłbym wypróbować? A może nawet materiał referencyjny, który o tym mówi?

Aby uzyskać więcej informacji o plikach STL (ważne są tylko pierwsze 2 sekcje, wszystko inne jest bezużyteczne):http://en.wikipedia.org/wiki/STL_%28file_format%29

questionAnswers(2)

yourAnswerToTheQuestion