¿Existe un paquete de Python que proporcione una implementación de un algoritmo de esqueleto recto?
Soy consciente de que el proyecto CGAL de código abierto (C ++) contiene una implementación, pero parece que cgal-bindings no incluye este paquete CGAL .
En cualquier caso, preferiría una implementación pura de Python que podría modificar / ampliar para satisfacer mis necesidades.
Si bien sería preferible una implementación que pueda manejar polígonos con agujeros, no es estrictamente necesario.
Respuestas:
Tal vez pueda modificar pySkeleton por Olivier Teboul para satisfacer sus necesidades.
No he tenido la oportunidad de ver el código real, pero por lo que dice, debería ser Python puro .
fuente
Puede usar pySkeleton de la siguiente manera:
Obtiene un objeto gráfico con nodos y arcos, al que puede acceder simplemente mediante:
Como dice en pySkeleton readme.txt, los vértices de los polígonos deben estar en el orden de las agujas del reloj. Para los agujeros dentro del polígono, los vértices deben estar en el sentido contrario a las agujas del reloj.
Observación: Para polígonos más complejos con más de 100 vértices y bordes, pySkeleton es inviablemente lento. Además de eso, recibo resultados extraños para algunos polígonos. Supongo que no funciona correctamente en todos los casos.
Sin embargo, muchas gracias a Olivier Teboul por esta biblioteca.
fuente