Czy istnieje pakiet Python, który zapewnia implementację algorytmu szkieletu prostego?
Wiem, że projekt CGAL typu open source (C ++) zawiera implementację, ale wygląda na to, że wiązania cgal nie zawierają tego pakietu CGAL .
W każdym razie wolałbym czystą implementację Pythona, którą mógłbym zmodyfikować / rozszerzyć, aby dopasować do moich potrzeb.
Chociaż implementacja, która może obsługiwać wielokąty z otworami, byłaby lepsza, nie jest to absolutnie konieczne.
Odpowiedzi:
Być może możesz zmodyfikować pySkeleton Oliviera Teboula, aby dostosować go do swoich potrzeb.
Nie miałem okazji przyjrzeć się rzeczywistemu kodowi, ale z tego, co mówi, powinien to być czysty Python .
źródło
Możesz użyć pySkeleton w następujący sposób:
Otrzymujesz obiekt wykresu z węzłami i łukami, do którego możesz uzyskać dostęp po prostu poprzez:
Jak napisano w pliku readme.txt pySkeleton, wierzchołki wielokątów muszą być w kolejności zgodnej z ruchem wskazówek zegara. W przypadku otworów w wielokącie wierzchołki muszą być w kolejności przeciwnej do ruchu wskazówek zegara.
Uwaga: w przypadku bardziej złożonych wielokątów z ponad 100 wierzchołkami i krawędziami pySkeleton jest niewykonalnie wolny. Poza tym otrzymuję dziwne wyniki dla niektórych wielokątów. Zakładam, że nie działa poprawnie we wszystkich przypadkach.
Niemniej wielkie podziękowania dla Oliviera Teboula za tę bibliotekę.
źródło