Apakah ada paket Python yang menyediakan implementasi algoritma Straight Skeleton?
Saya sadar bahwa proyek open source (C ++) CGAL mengandung implementasi tetapi sepertinya cgal-bindings tidak termasuk paket CGAL ini .
Dalam kasus apa pun, saya lebih suka implementasi Python murni yang dapat saya modifikasi / perluas sesuai dengan kebutuhan saya.
Meskipun implementasi yang dapat menangani poligon dengan lubang lebih disukai, itu tidak sepenuhnya diperlukan.
Jawaban:
Mungkin Anda dapat memodifikasi pySkeleton oleh Olivier Teboul sesuai dengan kebutuhan Anda.
Saya belum memiliki kesempatan untuk melihat kode yang sebenarnya tetapi dari apa yang dia katakan itu harus Python murni .
sumber
Anda dapat menggunakan pySkeleton sebagai berikut:
Anda mendapatkan Graph-Object dengan Nodes dan Arcs, yang dapat Anda akses hanya dengan:
Seperti dikatakan dalam readme.txt pySkeleton, simpul poligon harus dalam urutan searah jarum jam. Untuk lubang dalam poligon, simpul harus berlawanan arah dengan jarum jam.
Catatan: Untuk poligon yang lebih kompleks dengan 100+ simpul dan tepi, pySkeleton lambat sekali. Selain itu saya menerima hasil yang aneh untuk beberapa poligon. Saya berasumsi bahwa itu tidak berfungsi dengan benar dalam semua kasus.
Meskipun demikian, terima kasih banyak kepada Olivier Teboul untuk perpustakaan ini.
sumber