ปัญหานี้มีวิธีแก้ไขปัญหาที่ถูกต้องมากมาย หนึ่งในนั้นทำงานคล้ายกับคำอธิบายของคุณ แต่แทนที่จะแบ่งรูปหลายเหลี่ยมที่ตำแหน่ง "สุ่ม" คุณสามารถทำได้อย่างมีจุดมุ่งหมายในวิธีที่ออกแบบมาเพื่อลดจำนวนการคำนวณ
นี่คืออัลกอริทึมพื้นฐาน การป้อนข้อมูลที่ประกอบด้วยทิศทางเครื่องบินกวาดใด ๆ รูปหลายเหลี่ยมPพื้นที่ภัณฑ์ซึ่งเป็นพื้นที่เป้าหมายระหว่างศูนย์และพื้นที่รูปหลายเหลี่ยมที่ไม่ติดลบและเกณฑ์ที (ในหน่วยของพื้นที่) จุดประสงค์ของมันคือการแบ่งPด้วยเส้นตั้งฉากกับทิศทางการกวาดเป็นสองส่วนส่วนหนึ่งอยู่ทางขวาของบรรทัดและอีกส่วนอยู่ทางซ้ายของเส้นดังกล่าวซึ่งความแตกต่างระหว่างพื้นที่ด้านขวาและพื้นที่เป้าหมายaไม่มี มากกว่าเสื้อ
ให้Lเป็นเส้นแนวตั้งฉากกับทิศทางการกวาด กำหนด f (L) จะเป็นพื้นที่ของ P พบที่ด้านขวาของ L, ลบ เหล่านี้ในแง่ของงานคือการหาศูนย์ของฉ เพราะฉไม่น่าจะเป็นอนุพันธ์ แต่อย่างต่อเนื่องทั้งการใช้วิธีการ bisection วิธี secantหรือ - ฉัน favorite- วิธี -Brent ของ ทั้งหมดนั้นเรียบง่ายและรับประกันว่าจะมาบรรจบกัน ใช้tสำหรับค่าเผื่อการลู่เข้าสำหรับอาร์กิวเมนต์
แค่นั้นแหละ. ลองพิจารณาสิ่งที่จะเขียนโค้ดนี้ การค้นพบรากเป็นประจำ - คุณสามารถใช้ก้อนทั่วไปของรหัสที่มัน - เพื่อให้การทำงานของระบบสารสนเทศภูมิศาสตร์ลงมาเพื่อการเข้ารหัสฉ การทำเช่นนั้นต้องการ
1. Splitting the polygon by a line.
2. Computing the area of the piece(s) to the right of the line.
การดำเนินการทั้งสองจะดำเนินการในเกือบทุก GIS แบบเวกเตอร์ หากไม่เป็นเช่นนั้นคุณสามารถแทนที่เส้นดังกล่าวด้วยสี่เหลี่ยมที่มีขนาดใหญ่มากซึ่งแสดงถึงครึ่งระนาบทางด้านขวาของบรรทัด ขั้นตอนที่ 1 จะกลายเป็น
1'. Clip the polygon to the rectangle.
นั่นเป็นการดำเนินการขั้นพื้นฐานจริงๆ
การเริ่มต้นด้วยการหารากที่คุณต้องพบช่วงเวลาที่ศูนย์ฉรับประกันว่าจะโกหก ทำได้ง่าย: ฉายซองจดหมายของรูปหลายเหลี่ยม ("กล่อง จำกัด ") ไปในทิศทางของการกวาดเส้น การฉายเป็นช่วงเวลาที่คุณต้องการ
คำถามนี้มีประวัติยาวนาน ฉันใช้อัลกอริทึมนี้สำหรับ ArcView 3.x นานแล้วและอธิบายมันหลายครั้งในฟอรัมผู้ใช้ ESRI เก่า Google
เว็บไซต์รูปหลายเหลี่ยมแบ่งฮับ: forums.esri.com
สำหรับการอภิปรายลิงก์ไปยังโค้ดการปรับปรุงและการเปลี่ยนแปลง (เช่นการแบ่งรูปหลายเหลี่ยมออกเป็นส่วนของขนาดที่ต้องการซึ่งมีขนาดกะทัดรัดที่สุด) และอัลกอริธึมสำหรับข้อมูลแรสเตอร์
นี่คือสิ่งที่รัฐในทวีปอเมริกามีลักษณะ (ในพื้นที่ฉายภาพเท่ากัน) โดยมีค่าต่ำสุดที่สามของแต่ละรัฐ เห็นได้ชัดว่าทิศทางการกวาดเป็นแนวตั้ง