उदाहरण के रूप में मानचित्रों का उपयोग करके विश्लेषणात्मक सतहों का निर्माण। भाग २

परिचय


यदि आपके पास एक असमान ग्रिड के साथ डेटा है, तो उन्हें संसाधित करने में सबसे महत्वपूर्ण कदम एक समान ग्रिड के साथ डेटा सेट में परिवर्तित करना है। यह परिवर्तन वास्तविक समय या इसके सन्निकटन में कंप्यूटर सिमुलेशन के लिए आवश्यक है। असमान ग्रिड से सीधे ऊंचाई प्राप्त करना एक संसाधन-गहन संचालन है।

इस भाग में, हम एक असमान ग्रिड को परिणाम की काफी अच्छी गुणवत्ता के साथ एक असमान ग्रिड में बदलने के लिए एक एल्गोरिथ्म पर विचार करेंगे।

काम की सामग्री


भाग 1. डेटा तैयार करना
भाग 2. एक समान ग्रिड का निर्माण
भाग 3. एक विश्लेषणात्मक सतह बनाना

उपदेश प्रयोजन


मौजूदा सेट के समरूप से एक समान ग्रिड प्राप्त करना आवश्यक है। इस मामले में, सभी ऊंचाइयों के अनुरूप होना चाहिए (चिकनी संक्रमण)। आकृति के स्थान पर, ऊंचाई को विकृत नहीं किया जाना चाहिए।

एल्गोरिदम


समान ग्रिड प्राप्त करने के लिए विभिन्न एल्गोरिदम हैं। उन सभी के अपने फायदे और नुकसान हैं, साथ ही नीचे दिए गए उदाहरण भी हैं।

चूंकि एक समान ग्रिड काम का एक मध्यवर्ती परिणाम था, इसलिए इसका निर्माण अग्रिम में किया गया था। एल्गोरिथ्म का चलन समय और स्मृति खपत की उचित सीमा के भीतर होना चाहिए।

परिणाम पहले से ही गेमिंग अनुप्रयोगों के लिए उपयोग किया जा सकता है, क्योंकि इसकी सटीकता इतनी महत्वपूर्ण नहीं है।

पिछले भाग से, हम वास्तव में पहले से ही वांछित संकल्प के साथ एक समान ग्रिड प्राप्त करते थे, केवल उस पर अधिकांश ऊंचाइयों की गणना नहीं की जाती है। इस भाग से इस समस्या का समाधान होता है।

काम का कार्ड

चित्र 1 अधूरा ऊंचाइयों के साथ एक समान ग्रिड का एक उदाहरण दिखाता है। रेखा का रंग ऊंचाई, काला रंग - अज्ञात ऊंचाई इंगित करता है।


चित्र 1. वर्क कार्ड

एक मनमाना बिंदु पर ऊंचाई प्राप्त करने के लिए एल्गोरिथ्म का सामान्य विवरण

क्षेत्र

अधिग्रहीत मेमोरी के बेहतर वितरण के लिए, पूरे मानचित्र को क्षेत्रों में विभाजित करना आवश्यक है। उन सभी बिंदुओं से गुजरें जिनकी कोई ऊंचाई नहीं है और एक गणना करें।

ऊंचाई की गणना

कार्य क्षेत्र में एक ज्ञात ऊंचाई के साथ तीन निकटतम बिंदुओं का पता लगाएं (वांछित सटीक और पाया के बीच खंड को क्रॉस को स्पर्श नहीं करना चाहिए)। किसी भी बीजगणितीय विधि ( त्रिकोण के द्रव्यमान के केंद्र का उपयोग किया जाता है , जहां ऊंचाई को वजन के रूप में लिया जाता है) का उपयोग करके उपलब्ध डेटा से ऊंचाई की गणना करें।

आस-पास के बिंदु खोजें

इस बिंदु पर, पुस्तक का उल्लेख वी। पोरव "कंप्यूटर ग्राफिक्स" द्वारा किया जाना चाहिए। यह कंप्यूटर ग्राफिक्स की बुनियादी अवधारणा देता है और निकटतम बिंदु खोजने के लिए एक अच्छा एल्गोरिथ्म प्रदान करता है। इसे "वर्ग की परिधि पर खोजें" कहा जाता है।

मूल एल्गोरिथ्म केवल दो निकटतम बिंदुओं की खोज करता है, जबकि स्थितियां संभव हैं जब स्थितियां आंशिक रूप से या पूरी तरह से, वर्तमान एक से आइसोलेट्स के पीछे स्थित हो सकती हैं। इस तरह से गणना की गई ऊंचाई गलत है, इसलिए एल्गोरिथ्म का विस्तार तीन बिंदुओं के साथ किया गया था, जो कि चौराहों के नियंत्रण के साथ होता है। इस मामले में, पहले की कलाकृतियां काठी बिंदुओं (कई प्रमुख ऊंचाइयों के बीच तराई) और बड़ी ऊंचाई के किनारों पर गायब हो जाती हैं।


चित्रा 2. मूल एल्गोरिथ्म। लाल परिक्रमा कलाकृतियाँ।

चित्रा 3. संशोधित एल्गोरिदम।

मैं लेख में सभी कोड नहीं दूंगा, यह लेख के अंत में संदर्भ द्वारा दिया जाएगा। यह ज्यादा नहीं है, समझने के लिए टिप्पणियां पर्याप्त हैं।

प्रसंस्करण परिणाम



प्रसंस्करण के परिणामस्वरूप, आवश्यक रिज़ॉल्यूशन के साथ एक समान ग्रिड प्राप्त होता है। एक उदाहरण चित्र 3 में दिखाया गया है। इसमें ऊंचाइयों के बीच चिकनी संक्रमण है। एक समान ग्रिड वाले पूरे नक्शे को कब्ज़ेदार मेमोरी की मात्रा को कम करने के लिए क्षेत्रों में विभाजित किया गया है। अनियमित ग्रिड डेटा को सूची संरचनाओं में संग्रहीत किया जाता है।

निष्कर्ष


एक समान ग्रिड बनाना काफी संसाधन-गहन संचालन है, इसमें आवश्यक सटीकता और कंप्यूटिंग शक्ति के आधार पर कई दिन लग सकते हैं। एल्गोरिथ्म पूरी तरह से समानांतर है, जो हमें गणना को अधिक कुशलता से करने की अनुमति देता है। "कंप्यूटर ग्राफिक्स" पुस्तक से वी। पोरव के एल्गोरिथ्म के एक संशोधन का उपयोग किया गया था

इंटरपोलर स्रोत कोड

Source: https://habr.com/ru/post/In123911/


All Articles