अपने हाथों से कागज से बने मास्टर क्लास "क्रिसमस बॉल्स"। दो त्रिभुजों का गोला

गोलाकार त्रिभुज और उसका अनुप्रयोग।

गोलाकार त्रिभुज- तीन बड़े वृत्तों के प्रतिच्छेदन द्वारा गठित एक गोले की सतह पर एक ज्यामितीय आकृति। एक गोले की सतह पर तीन बड़े वृत्त जो एक बिंदु पर प्रतिच्छेद नहीं करते हैं, आठ गोलाकार त्रिभुज बनाते हैं। एक गोलाकार त्रिभुज, जिसकी सभी भुजाएँ वृहत वृत्त के आधे से भी कम हों, कहलाती हैं यूलर।

एक गोलाकार त्रिभुज की भुजा उस पर आधारित केंद्रीय कोण के मान से मापी जाती है। एक गोलाकार त्रिभुज के कोण को उन तलों के बीच के विकर्ण कोण के मान से मापा जाता है जिसमें इस कोण की भुजाएँ होती हैं। गोलाकार त्रिकोणमिति द्वारा गोलाकार त्रिभुजों के तत्वों के बीच संबंधों का अध्ययन किया जाता है।

गोलाकार त्रिभुज के गुण:

  1. समतल त्रिभुजों की समानता के लिए तीन शर्तों के अतिरिक्त, गोलाकार त्रिभुजों के लिए एक और सत्य है: दो गोलाकार त्रिभुज समान होते हैं यदि उनके संगत कोण बराबर हों।
  2. एक गोलाकार त्रिभुज की भुजाओं के लिए, 3 त्रिभुज असमानताएँ धारण करती हैं: प्रत्येक भुजा अन्य दो भुजाओं के योग से कम और उनके अंतर से अधिक होती है।
  3. सभी पक्षों का योग a + b + c हमेशा 2πR से कम होता है।
  4. मात्रा 2πR - (a + b + c) को गोलाकार दोष कहा जाता है
  5. गोलाकार त्रिभुज s = α + β + के कोणों का योग हमेशा 3π से कम और से बड़ा होता है
  6. मात्रा को गोलाकार आधिक्य या गोलाकार आधिक्य कहा जाता है
  7. एक गोलाकार त्रिभुज का क्षेत्रफल सूत्र द्वारा निर्धारित किया जाता है।
  8. एक समतल त्रिभुज के विपरीत, एक गोलाकार त्रिभुज में दो या तीन 90° कोण भी हो सकते हैं।

सभी गोलाकार बहुभुजों में सबसे दिलचस्प गोलाकार त्रिभुज है। तीन बड़े वृत्त, दो बिंदुओं पर जोड़े में प्रतिच्छेद करते हुए, गोले पर आठ गोलाकार त्रिभुज बनाते हैं। उनमें से एक के तत्वों (भुजाओं और कोणों) को जानकर, आप अन्य सभी के तत्वों को निर्धारित कर सकते हैं, इसलिए, उनमें से एक के तत्वों के बीच संबंध पर विचार करें, जिसमें सभी पक्ष आधे से कम बड़े वृत्त हैं। त्रिभुज की भुजाओं को त्रिभुज कोण OABS के समतल कोणों द्वारा मापा जाता है, त्रिभुज के कोणों को उसी त्रिभुज कोण के द्विफलक कोणों द्वारा मापा जाता है, देखें चित्र।

गोलाकार त्रिभुजों के गुण समतल में त्रिभुजों के गुणों से कई प्रकार से भिन्न होते हैं। अतः रेक्टिलिनियर त्रिभुजों की समानता के प्रसिद्ध तीन मामलों में एक चौथाई जोड़ा जाता है: दो त्रिभुज ABC और A `B` C बराबर होते हैं यदि तीनों कोण PA = RA, PB = PB, PC = PC क्रमशः बराबर हैं। इस प्रकार, समान त्रिभुज गोले पर मौजूद नहीं हैं; इसके अलावा, गोलाकार ज्यामिति में समानता की कोई अवधारणा नहीं है, क्योंकि ऐसे कोई परिवर्तन नहीं हैं जो सभी दूरियों को समान (1 के बराबर नहीं) बार-बार बदलते हैं। ये विशेषताएं समानांतर रेखाओं के बारे में यूक्लिडियन स्वयंसिद्ध के उल्लंघन से जुड़ी हैं और लोबचेवस्की की ज्यामिति में भी निहित हैं। वे त्रिभुज जिनमें समान अवयव और भिन्न-भिन्न अभिविन्यास होते हैं, सममित कहलाते हैं, जैसे, उदाहरण के लिए त्रिभुज AC`C तथा BCC'

किसी भी गोलाकार त्रिभुज के कोणों का योग हमेशा 180° से अधिक होता है। अंतर RA + RV + RS - p \u003d d (रेडियन में मापा जाता है) - एक सकारात्मक मान है और इसे किसी दिए गए गोलाकार त्रिभुज का गोलाकार अतिरिक्त कहा जाता है। गोलाकार त्रिभुज का क्षेत्रफल: S = R2 d जहाँ R गोले की त्रिज्या है और d गोलाकार आधिक्य है। यह सूत्र पहली बार 1629 में डचमैन ए। गिरार्ड द्वारा प्रकाशित किया गया था और उनके नाम पर रखा गया था।

यदि हम कोण के साथ एक विकर्ण पर विचार करते हैं, तो 226 = 2p/n (n एक पूर्णांक है) पर, गोले को ऐसे डिगॉन की बिल्कुल n प्रतियों में काटा जा सकता है, और गोले का क्षेत्रफल 4pR2 = 4p है आर = 1, इसलिए डिगॉन का क्षेत्रफल 4p/n = 2a है। यह सूत्र a = 2pt/n के लिए भी सत्य है और इसलिए, सभी a के लिए सत्य है। यदि हम गोलाकार त्रिभुज ABC की भुजाओं को जारी रखते हैं और गोले के क्षेत्रफल को कोण A, B, C और इसके अपने क्षेत्र के साथ इस मामले में बने विकर्णों के क्षेत्रों के रूप में व्यक्त करते हैं, तो हम ऊपर आ सकते हैं गिरार्ड सूत्र।

गोलाकार त्रिभुज से तात्पर्य एक गोले की सतह पर एक त्रिभुज से है, जो बड़े वृत्तों के चापों से बना है - अर्थात ऐसे वृत्त, जिनका केंद्र गोले का केंद्र है। एक गोलाकार त्रिभुज के कोण इसके शीर्षों पर खींची गई स्पर्श रेखाओं के बीच के कोण होते हैं। एक नियमित त्रिभुज के कोणों की तरह, वे 0 से 180° के बीच होते हैं। एक सपाट त्रिभुज के विपरीत, एक गोलाकार त्रिभुज में 180° के बराबर कोणों का योग नहीं होता है, लेकिन इससे भी अधिक होता है: उदाहरण के लिए, दो याम्योत्तरों के चापों और ग्लोब पर भूमध्य रेखा द्वारा निर्मित त्रिभुज पर विचार करके इसे सत्यापित करना आसान है। : हालांकि मेरिडियन ध्रुव पर अभिसरण करते हैं, दोनों भूमध्य रेखा के लंबवत होते हैं, और इसलिए इस त्रिभुज में दो समकोण होते हैं!

एक गोलाकार त्रिभुज में दो समकोण हो सकते हैं

पहले से ही भारतीय वराहमिहिर (5वीं-6वीं शताब्दी), 9वीं शताब्दी के अरब गणितज्ञ और खगोलविद। (सबिट इब्न कोर्रा, अल-बट्टानी), और पश्चिमी गणितज्ञों के बीच, रेजियोमोंटानस (XV सदी) से शुरू होकर, विभिन्न योगों में गोलाकार त्रिभुजों पर एक अद्भुत प्रमेय है। यहां बताया गया है कि इसे आधुनिक संकेतन में कैसे तैयार किया जा सकता है:

कोसा = cosbcosc + sinbsinccosA. गोलाकार कोसाइन प्रमेय खगोल विज्ञान और भूगोल दोनों के लिए बहुत महत्वपूर्ण है। यह प्रमेय दो शहरों A और B के निर्देशांकों का उपयोग करके उनके बीच की दूरी का पता लगाने की अनुमति देता है। इसके अलावा, गोलाकार कोसाइन प्रमेय ने इस्लामी देशों में गणितज्ञों को एक और व्यावहारिक समस्या को हल करने में मदद की: दिए गए निर्देशांक वाले शहर में, पवित्र शहर मक्का की दिशा खोजें (प्रत्येक रूढ़िवादी मुस्लिम को मक्का की दिशा में दिन में पांच बार प्रार्थना करनी चाहिए) . इस समस्या को हल करते समय, शहर बी को मक्का मानते हुए, उसी त्रिभुज के कोण ए को खोजने की आवश्यकता थी।

"खगोल विज्ञान के विज्ञान के लिए नियमों का संग्रह" का एक पृष्ठ, 11वीं शताब्दी, लेखक अज्ञात।

खगोल विज्ञान में, गोलाकार कोसाइन प्रमेय आपको खगोलीय क्षेत्र पर एक समन्वय प्रणाली से दूसरे में जाने की अनुमति देता है। तीन ऐसी प्रणालियों का सबसे अधिक बार उपयोग किया जाता है: एक में, आकाशीय भूमध्य रेखा भूमध्य रेखा के रूप में कार्य करती है, और दुनिया के ध्रुव ध्रुवों के रूप में कार्य करते हैं, जिसके चारों ओर चमकदारों का दृश्य दैनिक रोटेशन होता है; दूसरी ओर, भूमध्य रेखा अण्डाकार है - वह वृत्त जिसके साथ वर्ष के दौरान तारों की पृष्ठभूमि के विरुद्ध सूर्य की दृश्य गति होती है; तीसरे में, भूमध्य रेखा की भूमिका क्षितिज द्वारा निभाई जाती है, और ध्रुवों की भूमिका आंचल और नादिर द्वारा निभाई जाती है। विशेष रूप से, गोलाकार कोसाइन प्रमेय के लिए धन्यवाद, क्षितिज के ऊपर सूर्य की ऊंचाई की गणना अलग-अलग समय पर और वर्ष के अलग-अलग दिनों में की जा सकती है।

वास्तुकला में पाल एक गोलाकार त्रिभुज है, जो एक वर्ग गुंबद स्थान से एक गुंबद परिधि में संक्रमण प्रदान करता है। पाल, पैंडेटिव (फ्रेंच पेंडेंटिफ से) - तिजोरी का हिस्सा, गुंबद संरचना का एक तत्व, जिसके माध्यम से आयताकार आधार से गुंबद की छत या उसके ड्रम में संक्रमण किया जाता है। पाल में एक गोलाकार त्रिभुज का आकार होता है, जिसका शीर्ष नीचे होता है, और गुंबददार वर्ग के आसन्न स्तंभों को जोड़ने वाले वसंत मेहराब के बीच की जगह को भरता है। पाल के गोलाकार त्रिभुजों के आधार एक साथ एक वृत्त बनाते हैं और गुंबद के भार को मेहराब की परिधि के साथ वितरित करते हैं।

पाल पर गुंबद पाल पेंटिंग

जॉर्ज नेल्सन

"डिजाइनर आराम कर सकता है और कुछ मज़ा ले सकता है; परिणाम एक मजाक, मजेदार हो सकता है। यह आश्चर्यजनक है कि यह कितनी बार बहुत महत्वपूर्ण मज़ा है।" जॉर्ज नेल्सन

जॉर्ज नेल्सन एक अमेरिकी डिजाइनर, वास्तुकार, आलोचक और डिजाइन सिद्धांतकार हैं। (1908, हार्टफोर्ड, कनेक्टिकट - 1986, न्यूयॉर्क)

उन्होंने प्रकाश जुड़नार, घड़ियां, फर्नीचर, पैकेजिंग डिजाइन किए और प्रदर्शनी डिजाइन में लगे हुए थे।

जॉर्ज नेल्सन की सबसे प्रसिद्ध डिजाइन परियोजनाएं ऑप आर्ट या ज्यामितीय अमूर्तवाद की भावना में ज्यामितीय आकृतियों का उत्कृष्ट शैलीकरण हैं।

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

जॉर्ज नेल्सन (जॉर्ज हेरोल्ड नेल्सन, 1908-1986)

एस्चर उत्कीर्णन

संकेंद्रित गोले। 1935. अंत उत्कीर्णन 24 x 24 सेमी।

चार खोखले संकेंद्रित गोले एक केंद्रीय प्रकाश स्रोत से प्रकाशित होते हैं। प्रत्येक गोले में नौ बड़े प्रतिच्छेदन वलय द्वारा गठित एक ग्रिड होता है; वे गोलाकार सतह को 48 समान गोलाकार त्रिभुजों में विभाजित करते हैं। मौरिट्स कॉर्नेलिस एस्चर (डच। मौरिट्स कॉर्नेलिस 17 जून, 1898, लीउवर्डेन, नीदरलैंड - 27 मार्च, 1972, लारेन, नीदरलैंड) - डच ग्राफिक कलाकार।

गोलाकार त्रिभुज का अनुप्रयोग:

  1. 3D ग्राफ़िक्स में गोलाकार त्रिभुजों का उपयोग
  2. खगोल विज्ञान में
  3. भूगोल में। गोलाकार त्रिभुज प्रमेय आपको दो शहरों ए और बी के बीच की दूरी खोजने के लिए निर्देशांक का उपयोग करने की अनुमति देता है।
  4. वास्तुकला में
  5. जॉर्ज नेल्सन द्वारा चेयर डिजाइन
  6. उत्कीर्णन में

गोलाकार त्रिकोणमिति

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

कोने , बी, सीगोलाकार त्रिभुज विपरीत भुजाएँ , बी, सीक्रमशः, परिभाषा के अनुसार, त्रिभुज की भुजाओं के संगत बड़े वृत्तों के चापों के बीच के कोण, या इन किरणों द्वारा परिभाषित विमानों के बीच के कोणों से छोटे होते हैं।

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

गोलाकार त्रिभुजों के गुण।एक गोलाकार त्रिभुज की प्रत्येक भुजा और कोण, परिभाषा के अनुसार, से कम होता है।

गेंद की सतह पर ज्यामिति गैर-यूक्लिडियन है; प्रत्येक गोलाकार त्रिभुज में भुजाओं का योग 0 और के बीच होता है, कोणों का योग और के बीच होता है। प्रत्येक गोलाकार त्रिभुज में, बड़ा कोण बड़ी भुजा के विपरीत होता है। किन्हीं दो भुजाओं का योग तीसरी भुजा से अधिक होता है, किन्हीं दो कोणों का योग तीसरे कोण के योग से कम होता है।

गोलाकार त्रिकोण और गोलाकार त्रिकोणमिति के मूल सूत्र

खगोलीय पिंडों की स्पष्ट स्थिति और गति से संबंधित खगोल विज्ञान की कई समस्याओं को गोलाकार त्रिभुजों को हल करने के लिए कम किया जाता है।

एक गोलाकार त्रिभुज एक गोले की सतह पर एक आकृति ABC है, जो तीन बड़े वृत्तों के चापों द्वारा बनाई गई है (चित्र 15)।

गोलाकार त्रिभुज के कोण गोलाकार त्रिभुज की भुजाओं को बनाने वाले बड़े वृत्तों के तलों के बीच के द्विफलकीय कोण होते हैं। इन कोणों को त्रिभुज के शीर्षों पर उसकी भुजाओं की स्पर्श रेखाओं के बीच के समतल कोणों द्वारा मापा जाता है।

त्रिभुजों को आमतौर पर माना जाता है, जिनके कोण और भुजाएँ 180° से कम होती हैं। ऐसे गोलाकार त्रिभुजों के लिए, कोणों का योग हमेशा 180° से अधिक लेकिन 540° से कम होता है, और भुजाओं का योग हमेशा 360° से कम होता है। एक गोलाकार त्रिभुज के तीनों कोणों के योग और 180° के अंतर को गोलाकार आधिक्य कहते हैं, अर्थात।

= डीए + डीबी + डीसी - 180°।

एक गोलाकार त्रिभुज s का क्षेत्रफल है

जहाँ R उस गोले की त्रिज्या है जिसके पृष्ठ पर त्रिभुज बना है।

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

एक गोलाकार त्रिभुज ABC (आकृति 15) लीजिए, जो R त्रिज्या के एक गोले पर बना हो और बिंदु O पर केन्द्रित हो।

शीर्ष A से हम स्पर्शरेखा AD और AE को भुजाओं b और c पर तब तक खींचते हैं जब तक कि वे त्रिज्या OS और 0B के विस्तारों के साथ प्रतिच्छेद न कर दें, जो संबंधित स्पर्शरेखा के साथ एक ही तल में स्थित होते हैं। D और E के प्रतिच्छेदन के प्रत्यक्ष बिंदुओं को जोड़ने पर, हम दो समतल तिरछे त्रिभुज ADE और ODE प्राप्त करते हैं जिनकी एक उभयनिष्ठ भुजा DE है। इन त्रिभुजों पर प्राथमिक ज्यामिति प्रमेयों को लागू करते हुए, हम लिखते हैं:

DE 2 \u003d OD 2 + OE 2 - 2OD × OE × cos a,

डीई 2 \u003d एडी 2 + एई 2 - 2एडी × एई × कॉस ए।

दूसरे समीकरण को पहले से घटाकर, हम प्राप्त करते हैं:

2OD × OE × cos a \u003d OD 2 - AD 2 + OE 2 - AE 2 + 2AD × AE × cos A. (1.31)

समकोण समतल त्रिभुज OAE और OAD से यह निम्नानुसार है:

ओडी 2 -एडी 2 =आर 2;ओई 2 -एई 2 =आर 2;

एडी = आरटीजी बी; एई = आरटीजी एस;

इन संबंधों को सूत्र (1.31) में प्रतिस्थापित करने और संबंधित कटौती और स्थानान्तरण करने पर, हम प्राप्त करते हैं

cos a \u003d cos b cos c + sin b sin c cos A, (1.32)

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

त्रिभुज की किसी भी भुजा के लिए सूत्र (1.32) लिखा जा सकता है। आइए इसे लिखें, उदाहरण के लिए, साइड बी के लिए:

cos b = cos with cos a + sin with sin a cos B

और, इसमें cos a को सूत्र (1.32) से प्रतिस्थापित करने पर, हम प्राप्त करते हैं

cos b = cos c (cos b cos c + sin b sin c cos A) + sin c sin a cos B.

कोष्ठक का विस्तार करने और दाईं ओर के पहले पद को बाईं ओर ले जाने पर, हमारे पास होगा:

cos b (1 - cos 2 s) \u003d sin b sin with cos with cos A + sin c sin a cos B.

(1 - cos 2 s) को sin 2 s से बदलना और सब कुछ sin c से कम करना, हम अंत में प्राप्त करते हैं

पाप एक कॉस बी \u003d sinc cos b - cos c sin b cos A, (1.33)

वे। पक्ष की ज्या का गुणनफल और सम्मिलित कोण की कोज्या दूसरी भुजा की ज्या के गुणनफल के बराबर होती है जो सम्मिलित कोण को तीसरी भुजा की कोज्या द्वारा बंधी हुई भुजा की कोज्या का गुणनफल घटाती है। तीसरी भुजा की ज्या और पहली भुजा के सम्मुख कोण की कोज्या द्वारा कोण।

सूत्र (1.33) को पंचतत्वों का सूत्र कहते हैं। इसे sin a cos C, sin b cos A, sin b cos C, sin with cos A और sin cos B के गुणनफल के लिए सादृश्य द्वारा लिखा जा सकता है।

अब हम cos A के सन्दर्भ में समानता (1.32) हल करते हैं:

अंतिम समानता के दोनों पक्षों का वर्ग करके और उन्हें 1 से घटाकर, हम प्राप्त करते हैं:

कोष्ठकों को खोलने और इस व्यंजक के दोनों भागों को sin 2 a से विभाजित करने पर, हमें प्राप्त होता है

परिणामी अभिव्यक्ति ए, बी और सी के संबंध में पूरी तरह से सममित है, और ए को बी के साथ और बी या ए को सी के साथ और ए को सी के साथ बदलकर, हम लिखते हैं

वे। एक गोलाकार त्रिभुज की भुजाओं की ज्याएँ उनके सम्मुख कोणों की ज्याओं के समानुपाती होती हैं; या गोलाकार त्रिभुज की किसी भुजा की ज्या का विपरीत कोण की ज्या से अनुपात एक स्थिरांक होता है।

एक गोलाकार त्रिभुज की भुजाओं और कोणों के बीच तीन व्युत्पन्न संबंध (1.32), (1.33), (1.34) मुख्य हैं; गोलाकार त्रिकोणमिति के कई अन्य सूत्र उनसे प्राप्त किए जा सकते हैं। हम अपने आप को एक समकोण गोलाकार त्रिभुज के लिए केवल एक सूत्र प्राप्त करने तक ही सीमित रखते हैं। मान लीजिए A = 90°; फिर पाप ए \u003d 1, cos A \u003d 0, और सूत्र (1.33) से हमें मिलता है

पाप एक कॉस बी \u003d कॉस बी के साथ पाप।

इस समानता के दोनों भागों को sin b से विभाजित करके और प्रतिस्थापित करके, (1.34) के अनुसार, हमारे पास होगा:

सीटीजी बी = पाप सी सीटीजी बी

वे। एक समकोण गोलाकार त्रिभुज के एक पैर की स्पर्शरेखा का विपरीत कोण की स्पर्शरेखा से अनुपात दूसरे पैर की ज्या के बराबर होता है।

कंप्यूटर में गाऊसी क्षेत्र पर एक छवि के बारे में जानकारी का प्रतिनिधित्व करने के लिए, इसकी सतह को कोशिकाओं में विभाजित करना समझ में आता है।

इस मामले में, मूल सतह के उस हिस्से का क्षेत्र, जो विभाजन सेल द्वारा निर्धारित दिशाओं के शंकु के अंदर उन्मुख होता है, प्रत्येक कोशिका से जुड़ा होता है। विस्तारित गोलाकार छवि के इस तरह के असतत सन्निकटन को अभिविन्यास हिस्टोग्राम कहा जाता है। आदर्श रूप से, कोशिकाओं को निम्नलिखित आवश्यकताओं को पूरा करना चाहिए:

एक ही क्षेत्र है;

एक ही आकार बनो

नियमित रूप से दूरी रखें;

एक गोल आकार है;

विभाजन को पर्याप्त रूप से अच्छा कोणीय संकल्प प्रदान करना चाहिए;

ऐसे घुमाव होने चाहिए जो विभाजन को अपने आप में ले लें।

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

संभावित विभाजनों में से एक का निर्माण अक्षांशीय पेटियों द्वारा होता है, जिनमें से प्रत्येक को फिर मध्याह्न धारियों (चित्र 16.13) द्वारा उप-विभाजित किया जाता है। परिणामी कोशिकाओं को क्षेत्रफल में लगभग बराबर बनाया जा सकता है यदि उच्च अक्षांशों पर ऐसे बैंडों की संख्या कम कर दी जाए। ऐसी योजना के फायदों में से एक सेल खोजने की सादगी है जिसके लिए सतह पर एक निश्चित सामान्य असाइन करना आवश्यक है। हालाँकि, ऐसी विधि ऊपर सूचीबद्ध आवश्यकताओं को पूरा करने से बहुत दूर है। उदाहरण के लिए, ऐसे कोई घुमाव नहीं हैं जिनकी मदद से गोले का निर्मित विभाजन स्वयं में अनुवाद किया जाता है (ध्रुवों को जोड़ने वाली धुरी के बारे में घुमावों को छोड़कर)।

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

चावल। 16.13 मेरिडियन और समानांतर द्वारा तत्वों में एक गोले का विभाजन। दुर्भाग्य से, इस तरह के विभाजन में अभिविन्यास हिस्टोग्राम को संग्रहीत करने के लिए आवश्यक कुछ ही गुण होते हैं।

चावल। 16.14. (स्कैन देखें) एक विभाजन और कोशिकाओं को प्राप्त करने के लिए एक एकल गोले पर एक डोडेकाहेड्रोन और एक इकोसाहेड्रोन को प्रोजेक्ट करना।

केवल पाँच नियमित निकाय ज्ञात हैं, जिनमें से किसी को चुनना होता है (टेट्राहेड्रॉन, हेक्साहेड्रोन, ऑक्टाहेड्रोन, डोडेकाहेड्रॉन और इकोसाहेड्रोन)। एक डोडेकाहेड्रॉन के लिए, कोशिकाएं काफी गोल होती हैं (चित्र 16.14, ए)। हालाँकि, डोडेकेहेड्रोन के केवल बारह चेहरे हैं। यहां तक ​​​​कि आईकोसाहेड्रोन भी अभिविन्यास का एक बहुत ही कच्चा प्रतिनिधित्व देता है (चित्र 16.14 बी)। इसके अलावा, इसकी बीस कोशिकाएँ बहुत गोल नहीं हैं।

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

चावल। 16.15 ए - एक छोटा icosahedron, जो 32 चेहरों के साथ एक अर्ध-नियमित पॉलीहेड्रॉन है; बी - पेंटा से डेकाहेड्रॉन, जिसमें 60 त्रिकोणीय चेहरे होते हैं। इकाई गोले की सतह के छोटे विभाजन ऐसे अर्ध-नियमित पॉलीहेड्रा पर आधारित हो सकते हैं।

चावल। 16.16. नियमित या अर्ध-नियमित पॉलीहेड्रा के किसी भी अनुमान के आधार पर जियोडेटिक नेटवर्क बनाने की क्षमता।

प्रत्येक फलक त्रिभुजाकार कोशिकाओं में विभाजित होता है। यहाँ दिखाया गया नेटवर्क icosahedron पर आधारित है और इसमें 12 कोने हैं, जो 5 कोशिकाओं से सटे हुए हैं। शेष शीर्षों पर छह कोशिकाएं अभिसरण करती हैं।

कुछ चेहरों का आकार अब सही नहीं है। अर्ध-नियमित पॉलीहेड्रॉन पर आधारित विभाजन का एक उदाहरण एक सॉकर बॉल देता है (चित्र 16.15, ए)। काटे गए icosahedron, यानी, 12 पंचकोणीय और 20 हेक्सागोनल चेहरों वाला एक शरीर, प्रारंभिक एक के रूप में लिया जाता है। दुर्भाग्य से, केवल 13 सेमीरेगुलर पॉलीहेड्रा (पांच काटे गए नियमित पॉलीहेड्रा, क्यूबोक्टाहेड्रोन, इकोसिडोडेकेहेड्रोन, स्नब क्यूब, स्नब आईकोसिडोडेकेड्रोन, ट्रंकेटेड क्यूबोक्टाहेड्रोन, रॉम्बिक्यूबोक्टाहेड्रोन, ट्रंकेटेड आईकोसिडोडेकेड्रोन, और डिकोसिडोडोडेकेड्रोन) हैं। वे हमारे उद्देश्यों के लिए पर्याप्त रूप से छोटे विभाजन की ओर नहीं ले जाते हैं।

यदि हम अभी भी एक बेहतर विभाजन प्राप्त करना चाहते हैं, तो हम मौजूदा एक को त्रिकोणीय तत्वों में विघटित करने का प्रयास कर सकते हैं। उदाहरण के लिए, यदि हम डोडेकाहेड्रोन के प्रत्येक पंचकोणीय फलकों को पांच समान त्रिभुजों में तोड़ते हैं, तो हमें 60 फलकों वाला एक पेंटाडोडेकेहेड्रॉन प्राप्त होता है (चित्र 16.15, ख)। ओम काटे गए icosahedron के लिए दोहरा है।

एक ही दिशा में आगे बढ़ते हुए, परिणामी त्रिभुजों में से प्रत्येक को चार छोटे त्रिभुजों में उप-विभाजित किया जा सकता है, जो कि भूगणित में सुप्रसिद्ध गुंबददार संरचनाओं के अनुसार पूर्ण रूप से होता है (चित्र 16.16)। उपरोक्त आवश्यकताओं में से कुछ को शिथिल करके, उच्च संकल्प प्राप्त किया जा सकता है। वास्तव में, दोहरे निर्माणों का उपयोग करना बेहतर है, क्योंकि उनके चेहरे भारी (अनियमित) षट्भुज हैं जिनके बीच 12 पेंटागन बिखरे हुए हैं (चित्र 16.15, बी)। मनमाने ढंग से छोटे विभाजन इस तरह प्रदान किए जा सकते हैं।

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

नियमित पॉलीहेड्रॉन।) फिर दिया गया वेक्टर उस सेल को सौंपा गया है जिसका केंद्र निकटतम है। एक भूगर्भीय नेटवर्क के समान विभाजन के मामले में, एक श्रेणीबद्ध तरीके से कार्य करना संभव है। ऐसा विभाजन किसी नियमित बहुफलक पर आधारित होता है। निकटतम केंद्र वाला कक्ष ऊपर वर्णित अनुसार पाया जाता है। उसके बाद, हम यह निर्धारित करते हैं कि कौन सा त्रिभुज इसे उप-विभाजित करता है, इकाई सामान्य वेक्टर में आता है। यह प्रक्रिया अगले चार त्रिभुजों के लिए जारी रहती है जो पाए गए त्रिभुज को उप-विभाजित करते हैं, और इसी तरह। व्यवहार में, तालिका देखने के तरीकों का उपयोग किया जा सकता है, हालांकि सटीक नहीं, बहुत तेज़ हैं।

मान लीजिए कि गोले पर एक सेल द्वारा भरा गया ठोस कोण (आइकोसाहेड्रोन के मामले में) है। उत्तल वस्तु के लिए ऐसे सेल के अंदर आने वाले नॉर्म्स की अपेक्षित संख्या है

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

इस डेमो की कहानी इस प्रकार है: एक बार मेरे एक दोस्त ने अपने खेल के लिए एक ग्रह मानचित्र जनरेटर बनाया और चाहता था कि इस तरह से बनाए गए नक्शे एक घूर्णन क्षेत्र के रूप में दिखाए जाएं। हालांकि, एक ही समय में, वह 3D ग्राफिक्स का उपयोग नहीं करना चाहता था, बल्कि विभिन्न कोणों पर घुमाए गए इसी गोले के साथ कई फ्रेम तैयार करता था। उपयोग की गई मेमोरी की मात्रा थी ... हम कहेंगे, अत्यधिक, लेकिन फ्रेम निर्माण की गति (साथ ही उनके निष्पादन की गुणवत्ता) को बहुत नुकसान हुआ। थोड़ा विचार करने के बाद, मैं इस प्रक्रिया को अनुकूलित करने में उसकी मदद करने में कामयाब रहा, लेकिन सामान्य तौर पर मुझे यह महसूस हुआ कि यह ओपनजीएल के लिए एक कार्य था, न कि 2 डी ग्राफिक्स के लिए।

और इसलिए, एक दिन, जब मुझे अनिद्रा से पीड़ा हुई, मैंने इन दो दृष्टिकोणों को संयोजित करने का प्रयास करने का निर्णय लिया: ओपनजीएल के माध्यम से एक घूर्णन क्षेत्र (उस पर एक ग्रह मानचित्र के साथ फैला हुआ) बनाएं, लेकिन साथ ही इसे फ्लैट छोड़कर।

और मुझे कहना होगा कि मैं सफल हुआ। लेकिन पहले चीजें पहले।

प्रक्रिया गणित

आरंभ करने के लिए, आइए वास्तविक कार्य को परिभाषित करें। स्क्रीन पर प्रत्येक बिंदु के लिए, हमारे पास कार्टेशियन समन्वय प्रणाली में दो स्क्रीन निर्देशांक हैं, और हमें इसके लिए गोलाकार निर्देशांक (वास्तव में, अक्षांश और देशांतर) खोजने की आवश्यकता है, जो वास्तव में, ग्रह मानचित्र के लिए बनावट निर्देशांक हैं।

इसलिए। एक गोलाकार समन्वय प्रणाली से एक कार्टेशियन में संक्रमण समीकरणों की एक प्रणाली द्वारा दिया जाता है (विकिपीडिया से लिया गया):

और रिवर्स ट्रांज़िशन - ऐसे समीकरणों के साथ:

कोआर्डिनेट जेडहम आसानी से निकल सकते हैं एक्सऔर यू, त्रिज्या को जानकर, और हम त्रिज्या को एक के बराबर ले सकते हैं।
भविष्य में, हम इस बात से सहमत होंगे कि हम उपरोक्त समीकरणों को अवधारणाओं को आपस में बदलकर थोड़ा बदल देंगे यू(हमारे लिए यह एक स्क्रीन वर्टिकल होगी) और जेड(यह दृश्य की गहराई होगी)।

तकनीकी हिस्सा

विचार के कार्यान्वयन के लिए हमें एक क्वाड का उपयोग करने की आवश्यकता होगी (मैं पहले से ही इसका उपयोग करने के तरीके के बारे में बात कर रहा हूं, इसलिए मैं इसे नहीं दोहराऊंगा, खासकर जब से नीचे परियोजना के पूर्ण स्रोत कोड का एक लिंक है), साथ ही साथ दो बनावट: ग्रह का वास्तविक नक्शा (मैंने 2048x1024 की पृथ्वी बनावट का उपयोग किया) और बनावट मानचित्रों का समन्वय करती है। दूसरी बनावट बनाने के लिए कोड कार्टेशियन से गोलाकार निर्देशांक में परिवर्तित होने के गणित को बड़े करीने से दोहराता है:

इंट टेक्ससाइज़ = 1024; डबल आर = टेक्ससाइज * 0.5; इंट पिक्सल = नया इंट; के लिए (इंट पंक्ति = 0, आईडीएक्स = 0; पंक्ति< texSize; row++) { double y = (r - row) / r; double sin_theta = Math.sqrt(1 - y*y); double theta = Math.acos(y); long v = Math.round(255 * theta / Math.PI); for (int col = 0; col < texSize; col++) { double x = (r - col) / r; long u = 0, a = 0; if (x >= -sin_theta && x<= sin_theta) { double z = Math.sqrt(1 - y*y - x*x); double phi = Math.atan2(z, x); u = Math.round(255 * phi / (2 * Math.PI)); a = Math.round(255 * z); } pixels = (int) ((a << 24) + (v << 8) + u); } } GLES20.glGenTextures(1, genbuf, 0); offsetTex = genbuf; if (offsetTex != 0) { GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, offsetTex); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_NONE); GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_NONE); GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, texSize, texSize, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, IntBuffer.wrap(pixels)); }
ध्यान दें कि निर्देशांक एक्सऔर यूश्रेणी से श्रेणी में स्थानांतरित किया जाता है [-1..1], और बनावट निर्देशांक यूऔर वीरेडियन से रेंज में परिवर्तित हो जाते हैं, जिसके बाद उन्हें क्रमशः 32-बिट बनावट के लाल और हरे रंग के घटकों में लिखा जाता है। अल्फा चैनल का उपयोग "गहराई" (निर्देशांक .) को स्टोर करने के लिए किया जाता है जेड), जबकि नीला अभी उपयोग में नहीं आया है। बिलिनियर फ़िल्टरिंग को अक्षम करना भी आकस्मिक नहीं है: इस स्तर पर यह कोई प्रभाव नहीं देता है (पड़ोसी बिंदुओं में किसी भी मामले में समान मूल्य होते हैं, बल्कि तेज छलांग के साथ), और जो मैं आगे दिखाने जा रहा हूं, वह हानिकारक होगा। लेकिन उस पर और नीचे।

दोनों बनावट एक साधारण पिक्सेल शेडर के इनपुट के लिए खिलाई जाती हैं (इसके बाद, चित्र क्लिक करने योग्य हैं):

निजी अंतिम स्ट्रिंग क्वाडएफएस = "सटीक माध्यमपी फ्लोट;\n" + "यूनिफ़ॉर्म सैम्पलर2डी uTexture0;\n" + "यूनिफ़ॉर्म सैंपलर2डी uTexture1;\n" + "भिन्न vec4 TexCoord0;\n" + "void main() (\n" + "vec4 vTex = बनावट2D(uTexture0, TexCoord0.xy);\n" + "vec3 vCol = बनावट2D(uTexture1, vTex.xy).rgb;\n" + " gl_FragColor = vec4(vCol, (vTex.w >
मैं दृश्य प्रतिपादन कोड प्रदान नहीं करता, क्योंकि इसमें सब कुछ मामूली है (और, फिर से, आप इसे पूर्ण स्रोत में देख सकते हैं), और शेडर अपने आप में काफी आदिम है। इसके बारे में सबसे उत्सुक बात, शायद, यह है कि अल्फा चैनल को अभी तक केवल सकारात्मकता के लिए चेक किया गया है, जबकि इसका उपयोग प्रकाश प्रभाव के लिए किया जा सकता है।

यह काफी अच्छी तरह से निकला, लेकिन किसी तरह सपाट, साथ ही मैं अपनी धुरी के चारों ओर ग्रह के वास्तविक रोटेशन को जोड़ना चाहूंगा।

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

निजी अंतिम स्ट्रिंग क्वाडएफएस = "सटीक माध्यमपी फ्लोट;\n" + "यूनिफ़ॉर्म सैम्पलर2डी uTexture0;\n" + "यूनिफ़ॉर्म सैंपलर2डी uTexture1;\n" + "यूनिफ़ॉर्म फ्लोट यूऑफ़सेट;\n" + "भिन्न vec4 TexCoord0;\n" + "void main() (\n" + "vec4 vTex = बनावट2D(uTexture0, TexCoord0.xy);\n" + "vTex.x += uOffset;\n" + " vec3 vCol = बनावट2D(uTexture1, vTex.xy) ).rgb;\n" + " gl_FragColor = vec4(vCol * vTex.w, (vTex.w > 0.0? 1.0: 0.0));\n" + ")\n";
खैर, गोले के बारे में कोई शिकायत नहीं है, लेकिन तस्वीर किसी तरह दिखती है ... आठ-बिट, या कुछ और। और कोई आश्चर्य नहीं: हमने बनावट निर्देशांक को एक सीमा (सामान्य रंग घटकों में हमारे लिए उपलब्ध अधिकतम) में दर्ज किया है, जिसका अर्थ है कि हमारे बनावट में ऊंचाई में 256 अंक (और चौड़ाई में 512, रोटेशन को देखते हुए) से अधिक नहीं हो सकते हैं। पर्याप्त नहीं है, आपको कम से कम 10-बिट सटीकता की आवश्यकता है।

संकल्प में वृद्धि

मैं आपको तुरंत चेतावनी देता हूं: यहां वर्णित कोड किसी भी उपकरण पर टेढ़ा काम कर सकता है, हालांकि मैं उन सभी उपकरणों पर सामान्य प्रतिपादन प्राप्त करने में कामयाब रहा, जिन्हें मैं अपने हाथों में पकड़ सकता था। किसी भी मामले में, यहां जो वर्णित किया गया है वह एक सामान्य हैक है।

इसलिए, हमने अब तक तीन में से दो रंग घटकों का उपयोग किया है, अर्थात। 24 में से 16 बिट। ठीक है, डेटा को पैक करते हैं ताकि प्रत्येक बनावट समन्वय का आकार 12 बिट्स हो, जो हमें 4096 पिक्सेल तक की बनावट के साथ काम करने की अनुमति देगा! ऐसा करने के लिए, हम प्रोग्राम में शाब्दिक रूप से तीन पंक्तियों को बदल देंगे:

लॉन्ग वी = मैथ।राउंड (4095 * थीटा / मैथ.पीआई); ...u = Math.round(4095 * phi / (2 * Math.PI)); ... पिक्सेल = (int) ((a .)<< 24) + (v << 12) + ((u & 15) << 8) + (u >> 4)); ...
और एक नया शेडर लिखें जो 12-बिट एड्रेसिंग स्कीम को ध्यान में रखता है (यह वह जगह है जहां बिलिनियर फ़िल्टरिंग को अक्षम किया जाना चाहिए!):

निजी अंतिम स्ट्रिंग क्वाडएफएस = "सटीक माध्यमपी फ्लोट;\n" + "यूनिफ़ॉर्म सैम्पलर2डी uTexture0;\n" + "यूनिफ़ॉर्म सैंपलर2डी uTexture1;\n" + "यूनिफ़ॉर्म फ्लोट यूऑफ़सेट;\n" + "भिन्न vec4 TexCoord0;\n" + "void main() (\n" + "vec4 vTex = बनावट2D(uTexture0, TexCoord0.xy);\n" + " vec3 vOff = vTex.xyz * 255.0 + vec3(0.5, 0.5, 0.5);\n" + "फ्लोट hiY = फ़्लोर (vOff.y / 16.0);\n" + "फ्लोट loY = vOff.y - 16.0 * hiY;\n" + "vec2 vCoord = vec2(\n" + " (vOff.x * 16.0 + LOY) / 4095.0 + uOffset,\n" + " (vOff.z * 16.0 + hiY) / 4095.0);\n" + " vec3 vCol = Texture2D(uTexture1, vCoord).rgb;\n" + " gl_FragColor = vec4(vCol * vTex.w, (vTex.w > 0.0? 1.0: 0.0));\n" + ")\n";
खैर, यह पूरी तरह से अलग मामला है! मामूली संशोधनों के साथ (पिंच जूम और फिंगर रोटेशन जोड़कर), मैंने अपने दोस्तों और सहकर्मियों को यह कार्यक्रम दिखाया, और साथ ही पूछा कि इस दृश्य में कितने त्रिकोण हैं। परिणाम अलग-अलग थे, और सवाल ने ही एक पकड़ की उपस्थिति का संदेह पैदा किया (इस मामले में, उत्तरदाताओं ने "एक" का मजाक उड़ाया, जो सच्चाई से बहुत दूर नहीं था), लेकिन सही उत्तर लगातार आश्चर्यजनक था। और सभी ने, एक के रूप में, पूछा: एक गोले को एक अक्ष के चारों ओर क्यों घुमाया जा सकता है, लेकिन झुका नहीं? .. हम्म।

इच्छा

लेकिन तथ्य यह है कि इस योजना में ढलान को लागू करना कहीं अधिक कठिन है। वास्तव में, कार्य अघुलनशील नहीं है, और मैंने इसका सामना भी किया, लेकिन बारीकियों के बिना नहीं।

संक्षेप में, कार्य स्थानांतरित समन्वय लेने के लिए नीचे आता है वी, जबकि निर्देशांक यूनहीं बदलता है: ऐसा इसलिए है क्योंकि हम अक्ष के चारों ओर घूर्णन जोड़ते हैं एक्स. योजना इस प्रकार है: हम बनावट निर्देशांक को स्क्रीन निर्देशांक (श्रेणी [-1..1] में) में बदलते हैं, क्षैतिज अक्ष के चारों ओर रोटेशन मैट्रिक्स लागू करते हैं (ऐसा करने के लिए, हम पहले से एक नए स्थिरांक में लिखते हैं यूटिल्टझुकाव के कोण के साइन और कोसाइन), और फिर हम नए निर्देशांक का उपयोग करते हैं यूहमारे टेम्पलेट बनावट में नमूना लेने के लिए। "घुमाया" समन्वय जेडयह हमारे काम भी आएगा, इसकी मदद से हम गेंद के पिछले हिस्से के लिए देशांतर को मिरर करेंगे)। स्क्रीन निर्देशांक जेडएक बनावट से दो बनावट चयन न करने के लिए आपको स्पष्ट रूप से गणना करनी होगी, साथ ही इससे इसकी सटीकता में वृद्धि होगी।

निजी अंतिम स्ट्रिंग क्वाडएफएस = "सटीक माध्यमपी फ्लोट;\n" + "यूनिफ़ॉर्म सैम्पलर2डी uTexture0;\n" + "यूनिफ़ॉर्म सैंपलर2डी uTexture1;\n" + "यूनिफ़ॉर्म फ्लोट यूऑफ़सेट;\n" + "यूनिफ़ॉर्म vec2 uTilt;\n" + "भिन्न vec4 TexCoord0;\n" + "void main() (\n" + "float sx = 2.0 * TexCoord0.x - 1.0;\n" + "float sy = 2.0 * TexCoord0.y - 1.0;\n" + "फ्लोट z2 = 1.0 - sx * sx - sy * sy;\n" + "अगर (z2> 0.0) (;\n" + "फ्लोट sz = sqrt(z2);\n" + " फ्लोट y = ( sy * uTilt.y - sz * uTilt.x + 1.0) * 0.5;\n" + "फ्लोट z = (sy * uTilt.x + sz * uTilt.y);\n" + " vec4 vTex = बनावट2D(uTexture0 , vec2(TexCoord0.x, y));\n" + " vec3 vOff = vTex.xyz * 255.0 + vec3(0.5, 0.5, 0.5);\n" + "float hiY = floor(vOff.y / 16.0) ;\n" + "फ्लोट loY = vOff.y - 16.0 * hiY;\n" + " vec2 vCoord = vec2(\n" + " (vOff.x * 16.0 + loY) / 4095.0,\n" + " ( vOff.z * 16.0 + hiY) / 4095.0);\n" + " अगर (z)< 0.0) { vCoord.x = 1.0 - vCoord.x; }\n" + " vCoord.x += uOffset;\n" + " vec3 vCol = texture2D(uTexture1, vCoord).rgb;\n" + " gl_FragColor = vec4(vCol * sz, 1.0);\n" + " } else {\n" + " gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n" + " }\n" + "}\n";
हुर्रे, ढलान ने काम किया! गोलार्द्धों की सीमा पर बस एक अजीब सा शोर थोड़ा शर्मनाक है। जाहिर है, समस्या सीमा बिंदुओं पर अपर्याप्त एड्रेसिंग सटीकता में निहित है (सर्कल के बिंदु स्वयं निर्देशांक की एक बहुत बड़ी श्रृंखला के अनुरूप हैं, एक टेक्सल काफी ध्यान देने योग्य लंबाई के अंतराल पर फैलता है)। अंत में, मैं एक के बजाय दो उत्पन्न बनावट का उपयोग करके इसे हराने में कामयाब रहा।

परिणामस्वरूप, आप गेंद को उसी तरह ज़ूम इन और रोटेट कर सकते हैं जैसे Google Earth में करते हैं। इस अंतर के साथ कि केवल दो त्रिभुज हैं।

और अंत में, वादा। परियोजना के लिए स्रोत कोड पर उपलब्ध है