পাইথন ব্যবহার করে স্ট্রেইট কঙ্কালের গণনা কীভাবে করবেন?


12

এখানে কি পাইথন প্যাকেজ রয়েছে যা স্ট্রেইট স্কেলটন অ্যালগরিদমের বাস্তবায়ন সরবরাহ করে?

আমি সচেতন যে ওপেন সোর্স (সি ++) প্রকল্প সিজিএল একটি বাস্তবায়ন সমন্বিত করে তবে মনে হয় সিগেল-বাইন্ডিংগুলিতে এই সিজিএল প্যাকেজটি অন্তর্ভুক্ত নেই

যাই হোক না কেন, আমি একটি শুদ্ধ পাইথন বাস্তবায়ন পছন্দ করি যা আমি আমার প্রয়োজন অনুসারে পরিবর্তন / প্রসারিত করতে পারি।

যদিও এমন একটি বাস্তবায়ন যা গর্তগুলির সাথে বহুভুজগুলি পরিচালনা করতে পারে তত ভাল হবে, তবে এটি কঠোরভাবে প্রয়োজন হয় না।


1
আপনি কি পাইস্কেলটন বা কঙ্কাল পরীক্ষা করেছেন ?
ফরিদ চেরাগি

আমি পাইস্কেলটন চেষ্টা করেছিলাম। গুই আবেদন আমার জন্য কাজ করে নি এবং আমি সময় এখনো যদি কোড উদ্ধারযোগ্য চেক করতে খুঁজে পেলাম না
underdark

বহুভুজ উল্লম্ব = আমদানি করুন [[(0,0), (0,5), (5,5), (5,0)] প্রান্ত = [(0,1), (1,2), (2,3), (৩,০)] পি = বহুভুজ। পলিগন (শীর্ষে, প্রান্তগুলি) কঙ্কাল_গ্রাফ = পি স্ট্রেইট_সেকলেটটন () __________________________________________________ উপরে চালানোর সময় আমি নিম্নলিখিত ত্রুটি পেয়েছি: _________ ট্রেসব্যাক (সর্বশেষতম কল): ফাইল "সি: y পাইস্কেলটন y পাইস্কেলটন \ test.py ", লাইন 6, মধ্যে <মডিউল> P = polygon.Polygon (ছেদচিহ্ন, প্রান্ত) ফাইল" সি: \ pySkeleton \ pySkeleton \ polygon.py ", লাইন 44, ইন Init self.vertices = মানচিত্র (পয়েন্ট, শিখুন) প্রকারের ত্রুটি: __init __ () ঠিক 3 টি আর্গুমেন্ট নেয় (2 প্রদত্ত)
রমেশ

উত্তর:


6

আপনার প্রয়োজন অনুসারে আপনি পাইভি স্কেলটন অলিভিয়ার তেবুল দ্বারা সংশোধন করতে পারেন।

আমি আসল কোডটি দেখার সুযোগ পাইনি তবে তিনি যা বলেন তার থেকে এটি খাঁটি পাইথন হওয়া উচিত ।


3

আপনি পাইস্কেলটনটি নিম্নরূপ ব্যবহার করতে পারেন :

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

পাইস্কেলটন রিডমে. টেক্সটে যেমন বলা হয়েছে, বহুভুজের অনুভূমিকগুলি ঘড়ির কাঁটা অনুসারে হওয়া দরকার। বহুভুজের মধ্যে গর্তগুলির জন্য, শীর্ষগুলি ঘড়ির কাঁটার বিপরীতে হওয়া দরকার।

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+ শীর্ষক এবং প্রান্ত সহ আরও জটিল বহুভুজগুলির জন্য পাইস্কেলটন অনিবার্যভাবে ধীর। এছাড়াও আমি বহুভুজগুলির জন্য অদ্ভুত ফলাফল পেয়েছি receive আমি ধরে নিলাম যে এটি সব ক্ষেত্রে সঠিকভাবে কাজ করে না।

তবুও, এই গ্রন্থাগারের জন্য অলিভিয়ার তেবুলকে অনেক ধন্যবাদ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.