Есть ли пакет Python, который обеспечивает реализацию алгоритма прямого скелета?
Я знаю, что проект CGAL с открытым исходным кодом (C ++) содержит реализацию, но кажется, что cgal-bindings не включает этот пакет CGAL .
В любом случае, я бы предпочел чистую реализацию Python, которую я мог бы модифицировать / расширить в соответствии со своими потребностями.
Хотя реализация, которая может обрабатывать полигоны с отверстиями, была бы предпочтительнее, это не является строго обязательным.
Ответы:
Возможно, вы можете изменить pySkeleton от Olivier Teboul в соответствии с вашими потребностями.
У меня не было возможности взглянуть на реальный код, но он говорит, что это должен быть чистый Python .
источник
Вы можете использовать pySkeleton следующим образом:
Вы получаете Граф-объект с узлами и дугами, к которому вы можете получить доступ просто:
Как сказано в pySkeleton readme.txt, вершины многоугольника должны располагаться по часовой стрелке. Для отверстий внутри многоугольника вершины должны быть расположены по часовой стрелке.
Примечание: для более сложных полигонов с более чем 100 вершинами и ребрами pySkeleton неоправданно медленен. Кроме того, я получаю странные результаты для некоторых полигонов. Я предполагаю, что это не работает правильно во всех случаях.
Тем не менее, большое спасибо Оливье Тебулу за эту библиотеку.
источник