เราใส่คำตอบที่นี่ซึ่งไม่ใช่คำตอบที่สมบูรณ์สำหรับคำถามของเรานั่นคือคำถามจะยังคง " เปิดให้ตอบ " อย่างไรก็ตามมันเป็นวิธีการแก้ปัญหาในคำถาม นี่คือเคล็ดลับที่เราใช้:
ก่อนอื่นให้ดูผลลัพธ์ :

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