คุณสามารถใช้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()
คุณได้รับ Graph-Object พร้อม Nodes และ Arcs ซึ่งคุณสามารถเข้าถึงได้ง่ายๆโดย:
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 จุดยอดและขอบ pySkeleton ช้าอย่างไม่น่าเป็นไปได้ นอกจากนั้นฉันยังได้รับผลแปลก ๆ สำหรับรูปหลายเหลี่ยม ฉันคิดว่ามันไม่ทำงานอย่างถูกต้องในทุกกรณี
อย่างไรก็ตามขอขอบคุณ Olivier Teboul สำหรับห้องสมุดนี้