Existe um pacote Python que fornece uma implementação de um algoritmo Straight Skeleton?
Estou ciente de que o projeto CGAL de código aberto (C ++) contém uma implementação, mas parece que as ligações cgal não incluem este pacote CGAL .
Em qualquer caso, eu preferiria uma implementação Python pura que pudesse modificar / estender para atender às minhas necessidades.
Embora uma implementação que possa lidar com polígonos com furos seja preferível, isso não é estritamente necessário.
Respostas:
Talvez você possa modificar o pySkeleton by Olivier Teboul para atender às suas necessidades.
Eu não tive a chance de olhar o código real, mas pelo que ele diz, deveria ser um Python puro .
fonte
Você pode usar pySkeleton da seguinte maneira:
Você obtém um objeto gráfico com nós e arcos, que você pode acessar simplesmente:
Como diz o pySkeleton readme.txt, os vértices do polígono precisam estar no sentido horário. Para furos no polígono, os vértices precisam estar no sentido anti-horário.
Observação: para polígonos mais complexos, com mais de 100 vértices e arestas, o pySkeleton é invencivelmente lento. Além disso, recebo resultados estranhos para alguns polígonos. Presumo que não funcione corretamente em todos os casos.
No entanto, muito obrigado a Olivier Teboul por esta biblioteca.
fonte