इस समस्या के कई वैध समाधान हैं। उनमें से एक आपके विवरण की तरह थोड़ा काम करता है, लेकिन "यादृच्छिक" स्थानों पर बहुभुजों को टुकड़ा करने के बजाय आप गणना की मात्रा को कम करने के लिए डिज़ाइन किए गए तरीके से इसे उद्देश्यपूर्ण तरीके से कर सकते हैं।
यहाँ बुनियादी एल्गोरिथ्म है। अपने इनपुट किसी भी विमान झाडू दिशा के होते हैं, एक बहुभुज पी अशून्य क्षेत्र के, एक लक्षित क्षेत्र एक शून्य और बहुभुज के क्षेत्र, और एक गैर नकारात्मक सीमा के बीच टी (क्षेत्र की इकाइयों में)। इसका उद्देश्य विभाजित करने के लिए है पी दो भागों, पंक्ति के दाईं ओर एक और रेखा के छोड़ दिया है, ऐसी है कि दाएं क्षेत्र और लक्षित क्षेत्र के बीच अंतर करने के लिए अन्य में झाडू दिशा के लिए एक लाइन सीधा साथ एक नहीं है t से अधिक ।
चलो एल झाडू दिशा के लम्बवत किसी भी उन्मुख लाइन हो। परिभाषित करें f (L) L के दाईं ओर पाया जाने वाला P का क्षेत्रफल है, ऋण a । इन शर्तों में काम करने के लिए है की एक शून्य को खोजने च । चूँकि f का विभेदीकरण होने की संभावना नहीं है, लेकिन यह निरंतर है, या तो द्विध्रुवी विधि , धर्मनिरपेक्ष विधि का उपयोग करें , या - मेरा पसंदीदा- Brent की विधि । सभी सरल और अभिसरण की गारंटी है। तर्क के लिए अभिसरण सहिष्णुता के लिए टी का उपयोग करें ।
बस। आइए विचार करें कि यह कोडिंग में क्या जाता है। रूट ढूंढना नियमित है - आप इसके लिए एक सामान्य कोड का उपयोग कर सकते हैं - इसलिए जीआईएस काम कोडिंग एफ के लिए नीचे आता है । ऐसा करना आवश्यक है
1. Splitting the polygon by a line.
2. Computing the area of the piece(s) to the right of the line.
दोनों ऑपरेशन लगभग किसी भी वेक्टर-आधारित जीआईएस में कार्यान्वित किए जाते हैं। यदि नहीं, तो आप लाइन के दाईं ओर आधे तल का प्रतिनिधित्व करने वाले एक बहुत बड़े आयत द्वारा लाइन को बदल सकते हैं। चरण 1 बन जाता है
1'. Clip the polygon to the rectangle.
यह वास्तव में एक बुनियादी ऑपरेशन है।
रूट फाइंडिंग के साथ शुरुआत करने के लिए, आपको एक अंतराल खोजने की आवश्यकता होती है जिसमें झूठ बोलने के लिए च के शून्य की गारंटी दी जाती है। यह आसान है: लाइन स्वीप की दिशा में बहुभुज के लिफाफे ("बाउंडिंग बॉक्स") को प्रोजेक्ट करें। प्रक्षेपण आप चाहते हैं अंतराल है।
इस सवाल का एक लंबा इतिहास है। मैंने इस एल्गोरिथम को ArcView 3.x के लिए बहुत पहले लागू किया था और पुराने ESRI उपयोगकर्ता मंचों में इसे कई बार वर्णित किया है। गूगल
हाइवे विभाजन बहुभुज साइट: forum.esri.com
विचार-विमर्श के लिए, कोड, संवर्द्धन और विविधताओं के लिंक (जैसे कि वांछित आकार के हिस्सों में बहुभुज को विभाजित करना जो कि यथासंभव कॉम्पैक्ट हैं) और रेखापुंज डेटा के लिए एल्गोरिदम।
यहाँ बताया गया है कि महाद्वीपीय अमेरिकी राज्य प्रत्येक राज्य के नीचे तीसरे भाग के साथ (समान क्षेत्र में प्रक्षेपण) जैसे दिखते हैं। जाहिर तौर पर स्वीप की दिशा लंबवत थी।