पायथन का उपयोग करके सीधे कंकाल की गणना कैसे करें?


12

क्या एक पायथन पैकेज है जो एक सीधे कंकाल एल्गोरिदम का कार्यान्वयन प्रदान करता है?

मुझे पता है कि ओपन सोर्स (C ++) प्रोजेक्ट CGALcontains एक कार्यान्वयन है, लेकिन ऐसा लगता है कि cgal-bindings में यह CGAL पैकेज शामिल नहीं है

किसी भी मामले में, मैं एक शुद्ध पायथन कार्यान्वयन को प्राथमिकता दूंगा जिसे मैं अपनी आवश्यकताओं के अनुरूप संशोधित / विस्तारित कर सकता हूं।

हालांकि एक कार्यान्वयन जो बहुभुज को छेद के साथ संभाल सकता है वह बेहतर होगा, यह कड़ाई से आवश्यक नहीं है।


1
आप pySkeleton या परीक्षण किया है Skeletron ?
फरीद चराघी

मैंने पाइस्केलेटन की कोशिश की। जीयूआई आवेदन मेरे लिए काम नहीं किया था और मैं समय अभी तक अगर कोड है salvageable जाँच करने के लिए नहीं मिला है
UnderDark

आयात बहुभुज कोने = [(0,0), (0,5), (5,5), (5,0)] किनारों = [(0,1), (1,2), (2,3) (3,0)] p = बहुभुज। पोलीगोन (कोने, किनारे) skeleton_graph = p.standard_skeleton () __________________________________________________ ऊपर निष्पादित करते समय मुझे निम्नलिखित त्रुटि मिली: __________________ और ट्रैसेबैक (सबसे हालिया कॉल अंतिम): फ़ाइल "C: \ pySkeleton \ pySkeleton \ test.py ", पंक्ति 6, में <मॉड्यूल> p = polygon.Polygon (कोने, किनारों) फ़ाइल" C: \ pySkeleton \ pySkeleton \ polygon.py ", पंक्ति 44, init self.verton = map (बिंदु,) कार्यक्षेत्र) टाइप करें: __in __ () बिल्कुल 3 तर्क (2 दिए गए) लेता है
ramesh

जवाबों:


6

हो सकता है कि आप अपनी आवश्यकताओं के अनुरूप ओलिवियर टेबूल द्वारा पाइस्केलेटन को संशोधित कर सकते हैं।

मुझे वास्तविक कोड को देखने का मौका नहीं मिला है, लेकिन वह जो कहता है, वह शुद्ध अजगर होना चाहिए ।


3

आप इस प्रकार pySkeleton का उपयोग कर सकते हैं :

from pySkeleton import polygon

vertices = [(0,0), (0,5), (5,5), (5,0)]
edges = [(0,1), (1,2), (2,3), (3,0)]

p = polygon.Polygon(vertices, edges)
skeleton_graph = p.straight_skeleton()

आपको नोड्स और आर्क के साथ एक ग्राफ़-ऑब्जेक्ट मिलता है, जिसे आप बस द्वारा एक्सेस कर सकते हैं:

nodes = skeleton_graph.nodes
arcs = skeleton_graph.arcs

जैसा कि यह कहा जाता है कि pySkeleton readme.txt में, बहुभुज कोने को दक्षिणावर्त-क्रम में होना चाहिए। बहुभुज के भीतर छेद के लिए, कोने को दक्षिणावर्त-क्रम में रखना आवश्यक है।

vertices = [(25.0, 15.0), (45.0, 15.0), (45.0, 35.0), (25.0, 35.0), # polygon
            (30.0, 20.0), (30.0, 30.0), (40.0, 30.0), (40.0, 20.0)] # hole in polygon

edges = [(0, 1), (1, 2), (2, 3), (3, 0), # polygon
         (4, 5), (5, 6), (6, 7), (7, 4)] # hole in polygon

टिप्पणी: 100+ वर्टिकल और किनारों के साथ अधिक जटिल बहुभुजों के लिए पाइस्केलेटन अनावश्यक रूप से धीमा है। इसके अलावा मुझे कुछ बहुभुजों के लिए अजीब परिणाम प्राप्त होते हैं। मैं मानता हूं कि यह सभी मामलों में सही तरीके से काम नहीं करता है।

बहरहाल, इस पुस्तकालय के लिए ओलिवियर टेबूल का बड़ा धन्यवाद।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.