เราใส่คำตอบที่นี่ซึ่งไม่ใช่คำตอบที่สมบูรณ์สำหรับคำถามของเรานั่นคือคำถามจะยังคง " เปิดให้ตอบ " อย่างไรก็ตามมันเป็นวิธีการแก้ปัญหาในคำถาม นี่คือเคล็ดลับที่เราใช้:
ก่อนอื่นให้ดูผลลัพธ์ :
ดังนั้นสายการได้รับในรูปหลายเหลี่ยมที่สร้างขึ้นแสดงในleft
middle
เป็นรูปหลายเหลี่ยมจริงตามที่แสดงในright
;)
สำหรับขั้นตอนวิธีรับด้านล่างที่เราใช้Shapely
แพคเกจในหลาม
- เส้น ==>
MultiLineString
{:: M}
- เพิ่มเล็ก ๆ
buffer
พูดeps
{:: MB}
- ภูมิภาค ==>
Polygon
{:: P} (ภูมิภาคนี่คือจตุรัส)
P.difference(MB)
{รูปหลายเหลี่ยมที่เกิดขึ้น}
โปรดทราบว่ามันเงียบเร็วในการทำงาน แต่จุดที่ขาดหายไปก็คือว่าอัลกอริทึมไม่ได้เป็นวิธีการเดิมสำหรับการสร้างรูปหลายเหลี่ยมจากเส้น อย่างไรก็ตามมันทำงานได้อย่างสมบูรณ์แบบสำหรับปัญหาที่เรามีในมือของเรา