Existe-t-il un package Python qui fournit une implémentation d'un algorithme Straight Skeleton?
Je suis conscient que le projet open source (C ++) CGAL contient une implémentation mais il semble que cgal-bindings n'inclut pas ce package CGAL .
Dans tous les cas, je préférerais une implémentation Python pure que je pourrais modifier / étendre en fonction de mes besoins.
Bien qu'une implémentation capable de gérer des polygones avec des trous soit préférable, elle n'est pas strictement nécessaire.
Réponses:
Vous pouvez peut-être modifier pySkeleton d'Olivier Teboul selon vos besoins.
Je n'ai pas eu la chance de regarder le code réel mais d'après ce qu'il dit, ce devrait être du pur Python .
la source
Vous pouvez utiliser pySkeleton comme suit:
Vous obtenez un objet graphique avec nœuds et arcs, auquel vous pouvez accéder simplement en:
Comme il est dit dans le fichier readme.txt de pySkeleton, les sommets des polygones doivent être dans le sens des aiguilles d'une montre. Pour les trous dans le polygone, les sommets doivent être dans le sens antihoraire.
Remarque: pour les polygones plus complexes avec plus de 100 sommets et arêtes, pySkeleton est incroyablement lent. En plus de cela, je reçois des résultats étranges pour certains polygones. Je suppose que cela ne fonctionne pas correctement dans tous les cas.
Un gros merci à Olivier Teboul pour cette bibliothèque.
la source