Pracuję nad aplikacją, muszę móc łączyć dwa zachodzące na siebie dowolne kształty rysowane przez użytkownika. Byłaby to operacja unijna na dwóch kształtach. Powstały kształt będzie sylwetką dwóch zachodzących na siebie kształtów.Oblicz połączenie dwóch dowolnych kształtów
Kształty są zapisywane jako sekwencja punktów zgodnie z ruchem wskazówek zegara.
Idealnie chciałbym algorytm, który zajmie dwie tablice punktów (x, y) i zwróci pojedynczą tablicę wynikowego kształtu.
Czytałem Wikipedia na Boolean operations on polygons, która wspomina o Sweep line algorithm, ale nie mogę utworzyć powiązania między tym a moim celem, niestety nie jestem matematykiem.
Zajmuję się tworzeniem aplikacji w języku ActionScript 3, ale znam język C#, Javę i ja potrafię wybierać między C i C++.
Dzięki, jestem wykonawczych w AS3 ale zaznajomieni z C#, Java –
Ach ... cóż, nie jestem pewien, jeśli kod źródłowy CGAL jest tak zabawny, że można go rozróżniać i portować, ponieważ wyraża on swoje algorytmy w dość ogólny sposób, wzorowany na STL (IIRC, to już dawno). Lepszym rozwiązaniem może być przeniesienie jednej z bardziej specyficznych bibliotek połączonych z dnem strony Wikipedii. Alternatywnie, możesz uciec po prostu renderując oba poligony do bitmapy, a następnie wykonując operacje boolean na tym? –
Znalazłem ten (częściowy) port AS3 portu Java GPC http://code.google.com/p/gpcas/ który obsługuje operacje UNION. Dzięki za wkład. –