podać kilka więcej możliwości bibliotek tam:
Polyboolean. Nigdy tego nie próbowałem, ale wygląda obiecująco: http://www.complex-a5.ru/polyboolean/index.html
Ogólny klips do wielokąta. Ta działa bardzo dobrze w praktyce i ma triangulację, a także wycinanie i dziurawienie otworów: http://www.cs.man.ac.uk/~toby/alan/software/
Moja osobista rekomendacja: Użyj tesselation z GLU (OpenGL Utility Library). Kod jest solidny, szybszy niż GPC i generuje mniej trójkątów. Nie potrzebujesz zainicjowanego uchwytu OpenGL lub czegoś podobnego, aby użyć biblioteki.
Jeśli nie podoba ci się pomysł włączenia biblioteki systemowej OpenGL do aplikacji DirectX, istnieje również rozwiązanie: wystarczy pobrać kod implementacyjny SGI OpenGL i podnieść z niego triangulator. Po prostu używa nazw OpenGL-Typedef i rozdania pełnego wyrażeń. to jest to! Możesz wyodrębnić kod i utworzyć samodzielną bibliotekę w ciągu godziny lub dwóch.
Generalnie moja rada byłaby taka, żeby używać czegoś, co działa, i nie zaczynam pisać własnej triangulacji.
Kusi, aby rzucić się na własną rękę, jeśli przeczytałeś o algorytmie przycinania uszu lub algorytmu liniowego, ale faktem jest, że algorytmy geometrii obliczeniowej są niewiarygodnie trudne do napisania w sposób, który działa stabilnie, nigdy się nie psuje i zawsze zwraca znaczący wynik. Numeryczne błędy zaokrąglania będą kumulować się i zabić cię w końcu.
Napisałem algorytm triangulacji w C dla firmy, w której pracuję. Sprawdzenie działania algorytmu trwało dwa dni. Praca z różnymi zdegenerowanymi danymi wejściowymi zajęła kolejne dwa lata (nie pracowałem na pełnym etacie, ale zaufaj mi - spędziłem na nim więcej czasu niż powinienem).
Czy potrzebujesz 2D (trójkąty) lub 3D (czworościan)? –
To jest wielobok 2D –