कम्पास का उपयोग करके 6-वर्ग का निर्माण करें। एक नियमित षट्भुज कैसे बनाएं. परिचालित वृत्त और निर्माणशीलता

बहुभुज का विषय स्कूली पाठ्यक्रम में शामिल है, लेकिन इस पर पर्याप्त ध्यान नहीं दिया जाता है। इस बीच, यह दिलचस्प है, और यह नियमित षट्भुज या षट्भुज के लिए विशेष रूप से सच है - आखिरकार, कई प्राकृतिक वस्तुओं का आकार ऐसा होता है। इनमें छत्ते और बहुत कुछ शामिल हैं। यह फॉर्म व्यवहार में बहुत अच्छा काम करता है।

परिभाषा एवं निर्माण

नियमित षट्भुज एक समतल आकृति होती है जिसकी छह भुजाएँ समान लंबाई की होती हैं और समान कोणों की संख्या समान होती है।

यदि हम बहुभुज के कोणों के योग के सूत्र को याद करें

यह पता चला कि इस आंकड़े में यह 720° के बराबर है। खैर, चूँकि आकृति के सभी कोण समान हैं, इसलिए यह गणना करना कठिन नहीं है कि उनमें से प्रत्येक 120° के बराबर है।

षट्भुज बनाना बहुत सरल है; आपको बस एक कम्पास और एक रूलर की आवश्यकता है।

चरण-दर-चरण निर्देश इस प्रकार दिखेंगे:

आप चाहें तो समान त्रिज्या के पाँच वृत्त खींचकर बिना रेखा के भी काम चला सकते हैं।

इस प्रकार प्राप्त आकृति एक नियमित षट्भुज होगी, और इसे नीचे सिद्ध किया जा सकता है।

गुण सरल और दिलचस्प हैं

एक नियमित षट्भुज के गुणों को समझने के लिए, इसे छह त्रिकोणों में विभाजित करना समझ में आता है:

इससे भविष्य में इसके गुणों को और अधिक स्पष्ट रूप से प्रदर्शित करने में मदद मिलेगी, जिनमें से मुख्य हैं:

  1. परिचालित वृत्त व्यास;
  2. अंकित वृत्त का व्यास;
  3. वर्ग;
  4. परिमाप।

परिचालित वृत्त और निर्माणशीलता

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

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

इसके बाद, आप अगली तरफ जा सकते हैं, और बिंदु C पर कोण से एक समद्विभाजक भी खींच सकते हैं। परिणाम एक और समबाहु त्रिभुज होगा, और भुजा AB दोनों के लिए उभयनिष्ठ होगी, और OS अगला त्रिज्या होगा जिसके माध्यम से वही वृत्त जाता है। ऐसे कुल छह त्रिभुज होंगे, और उनका बिंदु O पर एक उभयनिष्ठ शीर्ष होगा। इससे पता चलता है कि एक वृत्त का वर्णन करना संभव होगा, और इसमें से केवल एक ही है, और इसकी त्रिज्या भुजा के बराबर है षट्कोण:

इसीलिए कम्पास और रूलर का उपयोग करके इस आकृति का निर्माण करना संभव है।

खैर, इस वृत्त का क्षेत्रफल मानक होगा:

अंकित वृत्त

परिवृत्त का केंद्र अंकित वृत्त के केंद्र के साथ मेल खाएगा। इसे सत्यापित करने के लिए, आप बिंदु O से षट्भुज की भुजाओं पर लंब खींच सकते हैं। वे षट्भुज बनाने वाले त्रिभुजों की ऊंचाई होंगी। और एक समद्विबाहु त्रिभुज में, ऊँचाई उस पक्ष के संबंध में माध्यिका होती है जिस पर वह स्थित होता है। इस प्रकार, यह ऊंचाई लंबवत द्विभाजक से अधिक कुछ नहीं है, जो कि अंकित वृत्त की त्रिज्या है।

एक समबाहु त्रिभुज की ऊंचाई की गणना सरलता से की जाती है:

h²=а²-(а/2)²= а²3/4, h=а(√3)/2

और चूँकि R=a और r=h, यह पता चलता है

r=R(√3)/2.

इस प्रकार, अंतःवृत्त एक नियमित षट्भुज की भुजाओं के केंद्रों से होकर गुजरता है।

इसका क्षेत्रफल होगा:

S=3πa²/4,

अर्थात्, जो वर्णित है उसका तीन चौथाई।

परिधि और क्षेत्रफल

परिधि के साथ सब कुछ स्पष्ट है, यह भुजाओं की लंबाई का योग है:

पी=6ए, या पी=6आर

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

S=6(а/2)(а(√3)/2)= 6а²(√3)/4=3а²(√3)/2या

S=3R²(√3)/2

जो लोग अंकित वृत्त की त्रिज्या के माध्यम से इस क्षेत्र की गणना करना चाहते हैं, वे यह कर सकते हैं:

S=3(2r/√3)²(√3)/2=r²(2√3)

मनोरंजक निर्माण

आप एक त्रिभुज को एक षट्भुज में फिट कर सकते हैं, जिसकी भुजाएँ शीर्षों को एक के माध्यम से जोड़ेंगी:

उनमें से कुल मिलाकर दो होंगे, और उनका ओवरलैप डेविड का सितारा देगा। इनमें से प्रत्येक त्रिभुज समबाहु है। इसे सत्यापित करना कठिन नहीं है. यदि आप AC पक्ष को देखें, तो यह एक साथ दो त्रिभुजों से संबंधित है - BAC और AEC। यदि उनमें से पहले में AB = BC है, और उनके बीच का कोण 120° है, तो शेष प्रत्येक में 30° होगा। इससे हम तार्किक निष्कर्ष निकाल सकते हैं:

  1. शीर्ष B से ऊंचाई ABC षट्भुज की आधी भुजा के बराबर होगी, क्योंकि syn30°=1/2। जो लोग इसे सत्यापित करना चाहते हैं उन्हें पाइथागोरस प्रमेय का उपयोग करके पुनर्गणना करने की सलाह दी जा सकती है; यह यहां बिल्कुल फिट बैठता है।
  2. साइड एसी अंकित वृत्त की दो त्रिज्याओं के बराबर होगी, जिसकी गणना फिर से उसी प्रमेय का उपयोग करके की जाती है। अर्थात्, AC=2(a(√3)/2)=a(√3).
  3. त्रिभुज ABC, CDE और AEF की दो भुजाएँ और उनके बीच का कोण बराबर है, और इससे यह निष्कर्ष निकलता है कि भुजाएँ AC, CE और EA बराबर हैं।

एक दूसरे को काटते हुए, त्रिभुज एक नया षट्भुज बनाते हैं, और यह नियमित भी है। यह सरलता से सिद्ध है:

इस प्रकार, यह आकृति एक नियमित षट्भुज की विशेषताओं से मेल खाती है - इसमें छह समान भुजाएँ और कोण हैं। शीर्षों पर त्रिभुजों की समानता से नए षट्भुज की भुजा की लंबाई निकालना आसान है:

d=a(√3)/3

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

r₂=a/2

S=(3(√3)/2)(а(√3)/3)²=а(√3)/2

यह पता चला है कि डेविड स्टार के अंदर षट्भुज का क्षेत्रफल उस बड़े षट्भुज के क्षेत्रफल से तीन गुना छोटा है जिसमें तारा अंकित है।

सिद्धांत से व्यवहार तक

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

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

फ़र्श के लिए कंक्रीट टाइलें भी बनाई जाती हैं।

प्रकृति में षट्कोणों की व्यापकता को सरलता से समझाया गया है। इस प्रकार, वृत्तों और गेंदों को एक समतल पर कसकर फिट करना सबसे आसान है यदि उनका व्यास समान हो। इसी वजह से छत्ते का आकार ऐसा होता है।

एक वृत्त में अंकित एक नियमित षट्भुज का निर्माण। किसी दी गई भुजा के अनुदिश एक नियमित पंचभुज का निर्माण करना। कम्पास सुई को वृत्त के साथ अभी खींचे गए चाप के प्रतिच्छेदन बिंदु पर ले जाएँ। यह निर्माण एक वर्ग और एक कम्पास का उपयोग करके किया जा सकता है। एक सीधे किनारे और 30X60° वर्ग का उपयोग करके एक नियमित षट्भुज बनाया जा सकता है। एक नियमित षट्भुज के कोनों के शीर्ष बिंदुओं का निर्माण करें।


एक वृत्त में अंकित समबाहु त्रिभुज का निर्माण। ऐसे त्रिभुज के शीर्षों का निर्माण एक कंपास और 30 और 60° के कोण वाले एक वर्ग या सिर्फ एक कंपास का उपयोग करके किया जा सकता है। भुजा 2-3 का निर्माण करने के लिए, क्रॉसबार को धराशायी रेखाओं द्वारा दर्शाई गई स्थिति में सेट करें, और बिंदु 2 के माध्यम से एक सीधी रेखा खींचें, जो त्रिभुज के तीसरे शीर्ष को निर्धारित करेगी।

3 की विधि 1: कम्पास का उपयोग करके एक पूर्ण षट्भुज बनाएं

हम वृत्त पर बिंदु 1 को चिह्नित करते हैं और इसे पंचभुज के शीर्षों में से एक के रूप में लेते हैं। माना कि व्यास D का एक वृत्त दिया गया है; आपको इसमें एक नियमित सप्तकोण फिट करने की आवश्यकता है (चित्र 65)। वृत्त के ऊर्ध्वाधर व्यास को सात बराबर भागों में बाँट लें। वृत्त D के व्यास के बराबर त्रिज्या वाले बिंदु 7 से, हम एक चाप का वर्णन करते हैं जब तक कि यह बिंदु F पर क्षैतिज व्यास की निरंतरता के साथ प्रतिच्छेद न कर दे। हम बिंदु F को बहुभुज का ध्रुव कहते हैं।

नियमित बहुभुजों के निर्माण की तकनीक खंडों के कोण समद्विभाजक और लंबवत समद्विभाजक बनाने की क्षमता पर आधारित है।

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

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

4. हमें अभीष्ट समकोण त्रिभुज ABC प्राप्त हुआ है। समस्या सुलझ गई है। 3. कम्पास के एक पैर को वृत्त पर एक मनमाने बिंदु A1 पर रखकर, दूसरे पैर का उपयोग करके हम उसी वृत्त पर बिंदु A2 को चिह्नित करते हैं और इसे बिंदु A1 से जोड़ते हैं। हमें षट्भुज की पहली भुजा प्राप्त होती है। 3. बिंदु O से गिराए गए बहुभुज की भुजाओं पर लंबवत समद्विभाजक का उपयोग करके, हम इसकी सभी भुजाओं और इसके आसन्न शीर्षों के बीच घिरे वृत्त के सभी चापों को आधा में विभाजित करते हैं।

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

बिंदु IV, V और VI से शीर्ष / - // - /// प्राप्त करने के लिए, क्षैतिज रेखाएँ तब तक खींचें जब तक वे वृत्त के साथ प्रतिच्छेद न करें

हम पाए गए शीर्षों को क्रमिक रूप से एक दूसरे से जोड़ते हैं। एफ ध्रुव से किरणें खींचकर और ऊर्ध्वाधर व्यास के विषम विभाजनों के माध्यम से एक सप्तभुज का निर्माण किया जा सकता है। दोनों वृत्तों के केंद्र संपाती हैं (चित्र 1 में बिंदु O)। यह आंकड़ा परिचालित (आर) और खुदा हुआ (आर) वृत्तों की त्रिज्या को भी दर्शाता है।

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

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

एक सीधे किनारे और 30X60° वर्ग का उपयोग करके एक नियमित षट्भुज बनाया जा सकता है। इस निर्माण को करने के लिए, हम वृत्त के क्षैतिज व्यास को कोण 1 और 4 के समद्विभाजक के रूप में लेते हैं (चित्र 60, बी), भुजाएँ 1 -6, 4-3, 4-5 और 7-2 बनाते हैं, जिसके बाद हम भुजाएँ 5-6 और 3-2 बनाते हैं।

एक वृत्त में अंकित एक समबाहु त्रिभुज की रचना करना. ऐसे त्रिभुज के शीर्षों का निर्माण एक कंपास और 30 और 60° के कोण वाले एक वर्ग या सिर्फ एक कंपास का उपयोग करके किया जा सकता है।

आइए एक वृत्त में अंकित समबाहु त्रिभुज बनाने के दो तरीकों पर विचार करें।

पहला तरीका(चित्र 61,ए) इस तथ्य पर आधारित है कि त्रिभुज 7, 2, 3 के सभी तीन कोणों में 60° है, और बिंदु 7 के माध्यम से खींची गई ऊर्ध्वाधर रेखा कोण 1 की ऊंचाई और समद्विभाजक दोनों है। चूंकि कोण 0-1- 2 30° के बराबर है, तो भुजा ज्ञात करने के लिए

1-2, बिंदु 1 और भुजा 0-1 से 30° का कोण बनाने के लिए पर्याप्त है। ऐसा करने के लिए, जैसा कि चित्र में दिखाया गया है, क्रॉसबार और वर्ग स्थापित करें, रेखा 1-2 खींचें, जो वांछित त्रिभुज की भुजाओं में से एक होगी। भुजा 2-3 का निर्माण करने के लिए, क्रॉसबार को धराशायी रेखाओं द्वारा दर्शाई गई स्थिति में सेट करें, और बिंदु 2 के माध्यम से एक सीधी रेखा खींचें, जो त्रिभुज के तीसरे शीर्ष को निर्धारित करेगी।

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

एक त्रिभुज (चित्र 61, बी) बनाने के लिए, व्यास पर शीर्ष-बिंदु 1 चिह्नित करें और एक व्यास रेखा 1-4 खींचें। इसके बाद, बिंदु 4 से डी/2 के बराबर त्रिज्या के साथ, हम एक चाप का वर्णन करते हैं जब तक कि यह वृत्त के साथ बिंदु 3 और 2 पर प्रतिच्छेद न कर दे। परिणामी बिंदु वांछित त्रिभुज के अन्य दो शीर्ष होंगे।

एक वृत्त में अंकित एक वर्ग की रचना करना. यह निर्माण एक वर्ग और एक कम्पास का उपयोग करके किया जा सकता है।

पहली विधि इस तथ्य पर आधारित है कि वर्ग के विकर्ण परिचालित वृत्त के केंद्र में प्रतिच्छेद करते हैं और इसके अक्षों पर 45° के कोण पर झुके होते हैं। इसके आधार पर, हम क्रॉसबार और वर्ग को 45° के कोण के साथ स्थापित करते हैं जैसा कि चित्र में दिखाया गया है। 62, ए, और बिंदु 1 और 3 को चिह्नित करें। इसके बाद, इन बिंदुओं के माध्यम से हम एक क्रॉसबार का उपयोग करके वर्ग 4-1 और 3-2 की क्षैतिज भुजाएँ खींचते हैं। फिर, एक सीधे किनारे का उपयोग करके, हम वर्ग की ऊर्ध्वाधर भुजाओं 1-2 और 4-3 को वर्ग के पैर के साथ खींचते हैं।

दूसरी विधि इस तथ्य पर आधारित है कि वर्ग के शीर्ष व्यास के सिरों के बीच घिरे वृत्त के चापों को समद्विभाजित करते हैं (चित्र 62, बी)। हम दो परस्पर लंबवत व्यासों के सिरों पर बिंदु A, B और C को चिह्नित करते हैं और उनसे त्रिज्या y के साथ चाप का वर्णन करते हैं जब तक कि वे एक दूसरे को प्रतिच्छेद नहीं करते।

इसके बाद, चापों के प्रतिच्छेदन बिंदुओं के माध्यम से हम सहायक सीधी रेखाएं खींचते हैं, जो चित्र में ठोस रेखाओं से चिह्नित हैं। वृत्त के साथ उनके प्रतिच्छेदन के बिंदु शीर्ष 1 और 3 निर्धारित करेंगे; 4 और 2. हम इस प्रकार प्राप्त वांछित वर्ग के शीर्षों को एक दूसरे के साथ श्रृंखला में जोड़ते हैं।

एक वृत्त में अंकित एक नियमित पंचकोण का निर्माण।

एक नियमित पंचकोण को एक वृत्त में फिट करने के लिए (चित्र 63), हम निम्नलिखित निर्माण करते हैं।

हम वृत्त पर बिंदु 1 को चिह्नित करते हैं और इसे पंचभुज के शीर्षों में से एक के रूप में लेते हैं। हम खंड AO को आधे में विभाजित करते हैं। ऐसा करने के लिए, हम बिंदु A से त्रिज्या AO के साथ एक चाप का वर्णन करते हैं जब तक कि यह बिंदु M और B पर वृत्त के साथ प्रतिच्छेद न कर दे। इन बिंदुओं को एक सीधी रेखा से जोड़ने पर, हमें बिंदु K मिलता है, जिसे हम फिर बिंदु 1 से जोड़ते हैं। खंड A7 के बराबर एक त्रिज्या, हम बिंदु K से एक चाप का वर्णन करते हैं जब तक कि यह बिंदु H पर व्यास रेखा AO ​​के साथ प्रतिच्छेद नहीं करता है। बिंदु 1 को बिंदु H से जोड़ने पर, हमें पंचभुज का पक्ष मिलता है। फिर, खंड 1H के बराबर एक कम्पास समाधान का उपयोग करते हुए, शीर्ष 1 से वृत्त के साथ चौराहे तक एक चाप का वर्णन करते हुए, हम शीर्ष 2 और 5 पाते हैं। एक ही कम्पास समाधान के साथ शीर्ष 2 और 5 से पायदान बनाने के बाद, हम शेष प्राप्त करते हैं शीर्ष 3 और 4। हम पाए गए बिंदुओं को क्रमिक रूप से एक दूसरे से जोड़ते हैं।

किसी दी गई भुजा के अनुदिश एक नियमित पंचभुज का निर्माण करना।

किसी दी गई भुजा के अनुदिश एक नियमित पंचभुज बनाने के लिए (चित्र 64), हम खंड AB को छह बराबर भागों में विभाजित करते हैं। त्रिज्या AB वाले बिंदु A और B से हम चापों का वर्णन करते हैं, जिनका प्रतिच्छेदन बिंदु K देगा। इस बिंदु और रेखा AB पर विभाजन 3 के माध्यम से हम एक ऊर्ध्वाधर रेखा खींचते हैं।

हमें पंचभुज का बिंदु 1-शीर्ष मिलता है। फिर, AB के बराबर त्रिज्या के साथ, बिंदु 1 से हम एक चाप का वर्णन करते हैं जब तक कि यह बिंदु A और B से पहले खींचे गए चाप के साथ प्रतिच्छेद न हो जाए। चाप के प्रतिच्छेदन बिंदु पंचकोण शीर्ष 2 और 5 निर्धारित करते हैं। हम पाए गए शीर्षों को जोड़ते हैं एक दूसरे के साथ श्रृंखला.

एक वृत्त में अंकित एक नियमित सप्तभुज का निर्माण।

माना कि व्यास D का एक वृत्त दिया गया है; आपको इसमें एक नियमित सप्तकोण फिट करने की आवश्यकता है (चित्र 65)। वृत्त के ऊर्ध्वाधर व्यास को सात बराबर भागों में बाँट लें। वृत्त D के व्यास के बराबर त्रिज्या वाले बिंदु 7 से, हम एक चाप का वर्णन करते हैं जब तक कि यह बिंदु F पर क्षैतिज व्यास की निरंतरता के साथ प्रतिच्छेद न कर दे। हम बिंदु F को बहुभुज का ध्रुव कहते हैं। बिंदु VII को सप्तभुज के शीर्षों में से एक के रूप में लेते हुए, हम ऊर्ध्वाधर व्यास के सम विभाजनों के माध्यम से ध्रुव F से किरणें खींचते हैं, जिनका वृत्त के साथ प्रतिच्छेदन सप्तभुज के शीर्ष VI, V और IV को निर्धारित करेगा। बिंदु IV, V और VI से शीर्ष / - // - /// प्राप्त करने के लिए, क्षैतिज रेखाएँ तब तक खींचें जब तक वे वृत्त के साथ प्रतिच्छेद न करें। हम पाए गए शीर्षों को क्रमिक रूप से एक दूसरे से जोड़ते हैं। एफ ध्रुव से किरणें खींचकर और ऊर्ध्वाधर व्यास के विषम विभाजनों के माध्यम से एक सप्तभुज का निर्माण किया जा सकता है।

उपरोक्त विधि किसी भी संख्या में भुजाओं वाले नियमित बहुभुज बनाने के लिए उपयुक्त है।

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

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

आपको चाहिये होगा

  • कम्पास, रूलर, पेंसिल, कागज की शीट।

निर्देश

1. एक चक्र बनाएं। कम्पास के पैरों के बीच कुछ दूरी निर्धारित करें। यह दूरी वृत्त की त्रिज्या होगी। त्रिज्या का चयन इस प्रकार करें कि वृत्त बनाना काफी आरामदायक हो। वृत्त पूरी तरह से कागज की शीट पर फिट होना चाहिए। कम्पास के पैरों के बीच बहुत बड़ी या बहुत छोटी दूरी ड्राइंग के दौरान इसके परिवर्तन का कारण बन सकती है। इष्टतम दूरी वह होगी जिस पर कम्पास के पैरों के बीच का कोण 15-30 डिग्री हो।

2. एक नियमित षट्भुज के कोनों के शीर्ष बिंदुओं का निर्माण करें। कम्पास के पैर को, जिसमें सुई लगी हुई है, वृत्त के किसी भी बिंदु पर रखें। सुई को खींची गई रेखा को छेदना चाहिए। कम्पास को जितनी सटीकता से स्थापित किया जाएगा, निर्माण उतना ही सटीक होगा। एक वृत्ताकार चाप बनाएं ताकि वह पहले खींचे गए वृत्त को प्रतिच्छेद करे। कम्पास सुई को वृत्त के साथ अभी खींचे गए चाप के प्रतिच्छेदन बिंदु पर ले जाएँ। वृत्त को प्रतिच्छेद करता हुआ एक और चाप खींचिए। कम्पास सुई को फिर से चाप और वृत्त के प्रतिच्छेदन बिंदु पर ले जाएं और चाप फिर से खींचें। वृत्त के चारों ओर एक दिशा में घूमते हुए इस क्रिया को तीन बार दोहराएं। प्रत्येक में छह चाप और छह प्रतिच्छेदन बिंदु होने चाहिए।

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

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

आपको चाहिये होगा

  • पेंसिल, कागज की शीट, शासक

निर्देश

1. कागज की एक शीट लें और उस पर चित्र में दिखाए अनुसार लगभग 6 बिंदु अंकित करें। 1.

2. बिंदुओं को चिह्नित करने के बाद, एक रूलर और एक पेंसिल लें और, उनकी मदद से, चरण दर चरण, एक के बाद एक, बिंदुओं को जोड़ें जैसा कि चित्र में दिख रहा है। 2.

विषय पर वीडियो

टिप्पणी!
एक षट्भुज के सभी आंतरिक कोणों का योग 720 डिग्री है।

षट्भुजएक बहुभुज है, जिसके छह कोण हैं। एक मनमाना षट्भुज बनाने के लिए, आपको प्रत्येक में 2 चरण करने होंगे।

आपको चाहिये होगा

  • पेंसिल, रूलर, कागज़ की शीट।

निर्देश

1. आपको अपने हाथ में एक पेंसिल लेनी होगी और शीट पर 6 यादृच्छिक बिंदु अंकित करने होंगे। भविष्य में ये बिंदु षट्भुज में कोनों की भूमिका निभाएंगे। (चित्र .1)

2. एक रूलर लें और इन बिंदुओं के आधार पर 6 खंड बनाएं जो पहले खींचे गए बिंदुओं के साथ एक दूसरे से जुड़ेंगे (चित्र 2)

विषय पर वीडियो

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

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

एक या दूसरे का निर्माण कैसे करें कोना- बड़ा सवाल. लेकिन कुछ कोणों के लिए कार्य अदृश्य रूप से सरल हो गया है। इनमें से एक कोण है कोना 30 डिग्री पर. यह बराबर है?/6, यानी, संख्या 30 180 का भाजक है। साथ ही, इसकी ज्या ज्ञात है। इससे इसके निर्माण में मदद मिलती है.

आपको चाहिये होगा

  • चाँदा, वर्ग, कम्पास, शासक

निर्देश

1. सबसे पहले, आइए एक विशेष रूप से आदिम स्थिति को देखें जब आपके हाथ में एक चांदा हो। फिर इससे 30 डिग्री के कोण पर एक सीधी रेखा को इसके सहारे आसानी से अलग किया जा सकता है।

2. चांदा के अतिरिक्त भी हैं कोनामेहराब, जिसका एक कोण 30 डिग्री के बराबर है। फिर एक और कोना कोनाकोण 60 डिग्री के बराबर होगा, यानी, आपको दृष्टि से छोटा चाहिए कोनाआवश्यक सीधी रेखा बनाने के लिए.

3. आइए अब 30-डिग्री कोण बनाने के गैर-तुच्छ तरीकों पर आगे बढ़ें। जैसा कि आप जानते हैं, 30 डिग्री के कोण की ज्या 1/2 के बराबर होती है। इसे बनाने के लिए हमें सीधे निर्माण करना होगा कोना tionary कोनानिक. यह संभव है कि हम दो लंबवत रेखाएँ बना सकते हैं। लेकिन 30 डिग्री की स्पर्शरेखा एक अपरिमेय संख्या है, इसलिए हम केवल पैरों के बीच के अनुपात की लगभग गणना कर सकते हैं (विशेषकर यदि कोई कैलकुलेटर नहीं है), और, इसलिए, निर्माण करें कोनालगभग 30 डिग्री.

4. इस मामले में, सटीक निर्माण करना संभव है। आइए हम फिर से दो लंबवत सीधी रेखाएं बनाएं, जिन पर पैर सीधे स्थित होंगे कोनानही जाओ कोनानिक. आइए हम कम्पास के सहारे कुछ लंबाई का एक सीधा पैर बीसी बिछाएं (बी - सीधा)। कोना). इसके बाद, हम कम्पास के पैरों के बीच की लंबाई को 2 गुना बढ़ा देंगे, जो कि प्राथमिक है। इस लंबाई की त्रिज्या के साथ बिंदु C पर केंद्र बनाकर एक वृत्त खींचते हुए, हम एक अन्य सीधी रेखा के साथ वृत्त का प्रतिच्छेदन बिंदु ज्ञात करते हैं। यह बिंदु सीधे बिंदु A होगा कोनानही जाओ कोनाएबीसी, और कोना A 30 डिग्री के बराबर होगा.

5. खड़ा करना कोना 30 डिग्री पर अनुमति है और सर्कल के समर्थन से, यह किसके बराबर है?/6 को लागू करना। आइए OB त्रिज्या वाला एक वृत्त बनाएं। आइए सिद्धांत पर नजर डालें कोनानिक, जहाँ OA = OB = R - वृत्त की त्रिज्या, जहाँ कोनाओएबी = 30 डिग्री. मान लीजिए OE इस समद्विबाहु त्रिभुज की ऊंचाई है कोनानिक, और, फलस्वरूप, इसका समद्विभाजक और माध्यिका। तब कोनाएओई = 15 डिग्री, और, अर्ध-कोण सूत्र के अनुसार, पाप(15o) = (sqrt(3)-1)/(2*sqrt(2))। परिणामस्वरूप, एई = आर*sin(15o)। अत: AB = 2AE = 2R*sin(15o)। बिंदु B पर केंद्र के साथ त्रिज्या BA का एक वृत्त बनाकर, हम इस वृत्त का प्रारंभिक बिंदु A के साथ प्रतिच्छेदन बिंदु A पाते हैं। कोण AOB 30 डिग्री होगा.

6. यदि हम किसी तरह से चाप की लंबाई निर्धारित कर सकते हैं, तो, लंबाई के एक चाप को अलग रखते हुए?*R/6, हमें यह भी मिलता है कोना 30 डिग्री पर.

टिप्पणी!
हमें याद रखना चाहिए कि अनुच्छेद 5 में हम केवल लगभग कोण का निर्माण कर सकते हैं, क्योंकि गणना में अपरिमेय संख्याएँ दिखाई देंगी।

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

आपको चाहिये होगा

  • - दिशा सूचक यंत्र;
  • - शासक;
  • - पेंसिल;
  • - कागज़।

निर्देश

1. षट्भुज की भुजा की लंबाई चुनें. एक कम्पास लें और उसके एक पैर पर स्थित सुई के सिरे और दूसरे पैर पर स्थित सीसे के सिरे के बीच की दूरी को खींची गई आकृति के किनारे की लंबाई के बराबर निर्धारित करें। ऐसा करने के लिए, आप एक रूलर का उपयोग कर सकते हैं या एक यादृच्छिक दूरी चुन सकते हैं यदि यह क्षण महत्वपूर्ण नहीं है। यदि संभव हो तो कंपास के पैरों को स्क्रू से सुरक्षित करें।

2. कम्पास का उपयोग करके एक वृत्त बनाएं। पैरों के बीच चयनित दूरी वृत्त की त्रिज्या होगी।

3. वृत्त को बिन्दुओं के साथ छह बराबर भागों में विभाजित करें। ये बिंदु षट्भुज के कोनों के शीर्ष होंगे और, तदनुसार, इसके किनारों का प्रतिनिधित्व करने वाले खंडों के सिरे होंगे।

4. कम्पास के पैर को सुई के साथ रेखांकित वृत्त की रेखा पर स्थित एक मनमाना बिंदु पर रखें। सुई को रेखा को सही ढंग से छेदना चाहिए। निर्माण की सटीकता सीधे कंपास की स्थापना की सटीकता पर निर्भर करती है। कम्पास से एक चाप खींचिए ताकि वह पहले खींचे गए वृत्त को 2 बिंदुओं पर प्रतिच्छेद करे।

5. सुई के साथ कम्पास के पैर को मूल वृत्त के साथ खींचे गए चाप के चौराहे के बिंदुओं में से एक पर ले जाएं। एक और चाप बनाएं, जो वृत्त को 2 बिंदुओं पर काटता हो (उनमें से एक कम्पास सुई के पिछले स्थान के बिंदु के साथ मेल खाएगा)।

6. इसी तरह, कम्पास सुई को पुनर्व्यवस्थित करें और चार बार चाप बनाएं। कम्पास के पैर को सुई के साथ वृत्त के चारों ओर एक दिशा में घुमाएँ (निश्चित रूप से दक्षिणावर्त या वामावर्त)। परिणामस्वरूप, प्रारंभ में निर्मित वृत्त के साथ चापों के प्रतिच्छेदन के छह बिंदुओं की पहचान की जानी चाहिए।

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

टिप्पणी!
कम्पास के पैरों के बीच की दूरी चुनना समझ में आता है ताकि उनके बीच का कोण 15-30 डिग्री हो; इसके विपरीत, निर्माण करते समय, यह दूरी आसानी से खो सकती है।

घर की डिज़ाइन योजना बनाते या विकसित करते समय, अक्सर निर्माण करना आवश्यक होता है कोना, मौजूदा के बराबर। नमूने और स्कूल ज्यामिति कौशल समर्थन के लिए आते हैं।

निर्देश

1. एक बिंदु से निकलने वाली दो सीधी रेखाओं से एक कोण बनता है। यह बिंदु कोण का शीर्ष कहलाएगा और रेखाएँ कोण की भुजाएँ होंगी।

2. कोनों को दर्शाने के लिए तीन अक्षरों का उपयोग करें: एक शीर्ष पर, दो किनारों पर। बुलाया कोना, उस अक्षर से शुरू करें जो एक तरफ है, फिर जो अक्षर सबसे ऊपर है उसे कहा जाता है, और उसके बाद दूसरी तरफ का अक्षर कहा जाता है। यदि आप विपरीत दिशा में अधिक सहज हैं तो कोनों को चिह्नित करने के लिए अन्य तरीकों का उपयोग करें। कभी-कभी, केवल एक अक्षर का नाम दिया जाता है, जो सबसे ऊपर स्थित होता है। और इसे कोणों को ग्रीक अक्षरों, मान लीजिए, α, β, γ से निरूपित करने की अनुमति है।

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

4. सबसे पहले, किसी दिए गए कोण के पूरे पक्ष पर एक बिंदु चिह्नित करें, मान लीजिए, बिंदु ए और सी, फिर बिंदु सी और ए को एक सीधी रेखा से जोड़ें। ट्रे प्राप्त करें कोनानिक एबीसी.

5. अब सीधी रेखा MN पर वही ट्रे बनाएं कोनाताकि इसका शीर्ष B बिंदु K पर रेखा पर हो। त्रिभुज बनाने के लिए नियम का उपयोग करें कोनातीन तरफ. बिंदु K से खंड KL को हटा दें। यह खंड BC के बराबर होना चाहिए. एल बिंदु प्राप्त करें.

6. बिंदु K से, खंड BA के बराबर त्रिज्या वाला एक वृत्त बनाएं। L से CA त्रिज्या वाला एक वृत्त खींचिए। 2 वृत्तों के प्रतिच्छेदन के परिणामी बिंदु (P) को K के साथ संयोजित करें। तीन प्राप्त करें कोनानिक केपीएल, वह जो तीन के बराबर होगा कोनाएबीसी किताब. इस तरह तुम्हें मिलता है कोना K. यह कोण B के बराबर होगा। इस निर्माण को अधिक आरामदायक और तेज़ बनाने के लिए, शीर्ष B से समान खंडों को सेट करें, एक कम्पास समाधान का उपयोग करके, पैरों को हिलाए बिना, बिंदु K से समान त्रिज्या वाले एक वृत्त का वर्णन करें।

विषय पर वीडियो

टिप्पणी!
कम्पास के पैरों के बीच की दूरी को गलती से बदलने से बचें। इस स्थिति में, षट्कोण ग़लत हो सकता है।

मददगार सलाह
वह पूरी तरह से नुकीले सीसे वाले कंपास का उपयोग करके निर्माण करने में माहिर है। इस तरह निर्माण विशेष रूप से सटीक होंगे।

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

लेख में कोड उदाहरण छद्मकोड में लिखे गए हैं, इसलिए अपना स्वयं का कार्यान्वयन लिखने के लिए उन्हें पढ़ना और समझना आसान है।

ज्यामिति

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


सपाट (बाएं) और नुकीले (दाएं) शीर्ष वाले षट्कोण

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

एंगल्स

एक नियमित षट्भुज में, आंतरिक कोण 120° होते हैं। इसमें छह "वेजेज" हैं, जिनमें से प्रत्येक 60° के आंतरिक कोण वाला एक समबाहु त्रिभुज है। कोने का बिंदु मैंकेंद्र केंद्र से (60° * i) + 30°, आकार इकाइयों की दूरी पर स्थित है। कोड में:

फ़ंक्शन हेक्स_कॉर्नर (केंद्र, आकार, i): var Angle_deg = 60 * i + 30 var Angle_rad = PI / 180 * Angle_deg रिटर्न प्वाइंट (केंद्र.x + आकार * cos (कोण_rad), केंद्र.y + आकार * पाप (कोण_rad) )
एक षट्भुज को भरने के लिए, आपको बहुभुज के शीर्षों को hex_corner(…, 0) से hex_corner(…, 5) तक प्राप्त करना होगा। षट्भुज की रूपरेखा बनाने के लिए, आपको इन शीर्षों का उपयोग करना होगा और फिर hex_corner(..., 0) में फिर से रेखा खींचनी होगी।

दो अभिविन्यासों के बीच अंतर यह है कि x और y की अदला-बदली की जाती है, जिसके परिणामस्वरूप कोणों में परिवर्तन होता है: फ्लैट-टॉप हेक्सागोन में 0°, 60°, 120°, 180°, 240°, 300° और नुकीले शीर्ष के कोण होते हैं। षट्भुज के कोण 30°, 90°, 150°, 210°, 270°, 330° होते हैं।


सपाट और नुकीले शीर्ष वाले षट्भुज के कोने

आकार और स्थान

अब हम कई षट्भुजों को एक साथ रखना चाहते हैं। क्षैतिज अभिविन्यास में, षट्भुज की ऊंचाई ऊंचाई = आकार * 2 है। आसन्न षट्कोणों के बीच ऊर्ध्वाधर दूरी लंबवत = ऊंचाई * 3/4 ​​​​है।

षट्भुज चौड़ाई चौड़ाई = sqrt(3)/2 * ऊँचाई। आसन्न षट्कोणों के बीच की क्षैतिज दूरी क्षितिज = चौड़ाई है।

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



सिस्टम संयोजित करें

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

ऑफसेट निर्देशांक

सबसे आम तरीका प्रत्येक अगले कॉलम या पंक्ति को ऑफसेट करना है। कॉलम को col या q निर्दिष्ट किया गया है। पंक्तियों को row या r से दर्शाया जाता है। आप विषम या सम स्तंभों/पंक्तियों को ऑफसेट कर सकते हैं, इसलिए क्षैतिज और ऊर्ध्वाधर षट्भुज प्रत्येक में दो विकल्प होते हैं।


क्षैतिज व्यवस्था "विषम-आर"


क्षैतिज व्यवस्था "सम-आर"


लंबवत "विषम-क्यू" व्यवस्था


लंबवत व्यवस्था "सम-क्यू"

घन निर्देशांक

षट्भुज ग्रिडों को देखने का दूसरा तरीका उन्हें इस रूप में देखना है तीनमुख्य अक्ष, नहीं दो, जैसे कि वर्गों के ग्रिड में। वे सुंदर समरूपता प्रदर्शित करते हैं।

आइए घनों का एक ग्रिड लें और चलो इसे काट दें x + y + z = 0 पर विकर्ण तल। यह एक अजीब विचार है, लेकिन यह हमें हेक्सागोन जाल एल्गोरिदम को सरल बनाने में मदद करेगा। विशेष रूप से, हम कार्टेशियन निर्देशांक से मानक संचालन का उपयोग करने में सक्षम होंगे: निर्देशांक को जोड़ना और घटाना, एक अदिश राशि से गुणा करना और विभाजित करना, साथ ही दूरियां।

घनों की ग्रिड पर तीन मुख्य अक्षों और छह से उनके संबंध पर ध्यान दें विकर्णषट्भुज ग्रिड की दिशाएँ। ग्रिड के विकर्ण अक्ष षट्भुज ग्रिड की मुख्य दिशा के अनुरूप हैं।


षटकोण


क्यूब्स

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

जानें कि षट्भुज जाल के लिए घन निर्देशांक कैसे काम करते हैं। जब आप षट्भुज का चयन करते हैं, तो तीन अक्षों के अनुरूप घन निर्देशांक हाइलाइट किए जाते हैं।

  1. क्यूब ग्रिड की प्रत्येक दिशा मेल खाती है पंक्तियांषट्कोणों की एक ग्रिड पर. कनेक्शन देखने के लिए 0, 1, 2, 3 के बराबर z वाला एक षट्भुज चुनने का प्रयास करें। रेखा नीले रंग में चिह्नित है. x (हरा) और y (बैंगनी) के लिए भी यही प्रयास करें।
  2. षट्कोण ग्रिड की प्रत्येक दिशा घन ग्रिड की दो दिशाओं का संयोजन है। उदाहरण के लिए, षट्भुज ग्रिड का "उत्तर" +y और -z के बीच स्थित है, इसलिए "उत्तर" का प्रत्येक चरण y को 1 से बढ़ाता है और z को 1 से घटाता है।
षट्भुज ग्रिड समन्वय प्रणाली के लिए घन निर्देशांक एक उचित विकल्प हैं। शर्त x + y + z = 0 है, इसलिए इसे एल्गोरिदम में संरक्षित किया जाना चाहिए। शर्त यह भी सुनिश्चित करती है कि प्रत्येक षट्भुज के लिए हमेशा एक विहित समन्वय होगा।

घनों और षट्भुजों के लिए कई अलग-अलग समन्वय प्रणालियाँ हैं। उनमें से कुछ में स्थिति x + y + z = 0 से भिन्न है। मैंने कई प्रणालियों में से केवल एक ही दिखाया। आप x-y , y-z , z-x के साथ घन निर्देशांक भी बना सकते हैं, जिनके पास दिलचस्प गुणों का अपना सेट है, लेकिन मैं यहां उनके बारे में नहीं बताऊंगा।

लेकिन आप यह तर्क दे सकते हैं कि आप निर्देशांक के लिए 3 नंबर संग्रहीत नहीं करना चाहते क्योंकि आप नहीं जानते कि मानचित्र को इस तरह कैसे संग्रहीत किया जाए।

अक्षीय निर्देशांक

एक अक्षीय समन्वय प्रणाली, जिसे कभी-कभी "ट्रैपेज़ॉइडल" समन्वय प्रणाली कहा जाता है, एक घन समन्वय प्रणाली से दो या तीन निर्देशांक से निर्मित होती है। चूँकि हमारे पास शर्त x + y + z = 0 है, इसलिए तीसरे निर्देशांक की आवश्यकता नहीं है। अक्षीय निर्देशांक मानचित्रों को संग्रहीत करने और उपयोगकर्ता को निर्देशांक प्रदर्शित करने के लिए उपयोगी होते हैं। घन निर्देशांक की तरह, आप कार्टेशियन निर्देशांक को जोड़ने, घटाने, गुणा करने और विभाजित करने के मानक संचालन का उपयोग कर सकते हैं।

कई घन समन्वय प्रणालियाँ और कई अक्षीय प्रणालियाँ हैं। मैं इस गाइड में हर संयोजन को शामिल नहीं करूंगा। मैं दो चर, q (स्तंभ) और r (पंक्ति) चुनूंगा। इस आलेख में आरेखों में, q, x से मेल खाता है और r, z से मेल खाता है, लेकिन यह पत्राचार मनमाना है क्योंकि आप अलग-अलग पत्राचार प्राप्त करने के लिए आरेखों को घुमा सकते हैं और घुमा सकते हैं।

विस्थापन ग्रिड की तुलना में इस प्रणाली का लाभ यह है कि एल्गोरिदम अधिक समझने योग्य हैं। इस प्रणाली का नकारात्मक पक्ष यह है कि आयताकार कार्ड को संग्रहित करना थोड़ा अजीब है; मानचित्र सहेजने पर अनुभाग देखें। कुछ एल्गोरिदम घन निर्देशांक में और भी स्पष्ट हैं, लेकिन चूंकि हमारे पास शर्त x + y + z = 0 है, हम तीसरे निहित निर्देशांक की गणना कर सकते हैं और इन एल्गोरिदम में इसका उपयोग कर सकते हैं। अपनी परियोजनाओं में मैं अक्षों को q, r, s कहता हूं, इसलिए स्थिति q + r + s = 0 जैसी दिखती है, और जरूरत पड़ने पर मैं s = -q - r की गणना कर सकता हूं।

एक्सेल

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


ऑफसेट निर्देशांक, घन और अक्षीय

एक्सिसवह दिशा है जिसमें संगत निर्देशांक बढ़ रहा है। किसी अक्ष पर लंबवत वह रेखा होती है जिस पर निर्देशांक स्थिर रहता है। ऊपर दिए गए ग्रिड आरेख लंबवत रेखाएँ दिखाते हैं।

समन्वय परिवर्तन

यह संभव है कि आप अपने डिज़ाइन में अक्षीय या ऑफसेट निर्देशांक का उपयोग करेंगे, लेकिन कई एल्गोरिदम घन निर्देशांक में अधिक आसानी से व्यक्त किए जाते हैं। इसलिए, हमें सिस्टम के बीच निर्देशांक को परिवर्तित करने में सक्षम होने की आवश्यकता है।

अक्षीय निर्देशांक घन निर्देशांक से निकटता से संबंधित हैं, इसलिए रूपांतरण सरल है:

# घन को अक्षीय निर्देशांक में परिवर्तित करें q = x r = z # अक्षीय को घन निर्देशांक में परिवर्तित करें x = q z = r y = -x-z
कोड में, इन दोनों कार्यों को इस प्रकार लिखा जा सकता है:

फ़ंक्शन क्यूब_टू_हेक्स(h): # अक्षीय var q = h.x var r = h.z रिटर्न हेक्स(q, r) फ़ंक्शन hex_to_cube(h): # क्यूबिक var x = h.q var z = h.r var y = -x-z रिटर्न क्यूब(x, y) , z)
ऑफसेट निर्देशांक काफी अधिक जटिल हैं:

आसन्न षट्कोण

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

घन निर्देशांक

हेक्स निर्देशांक में एक स्थान ले जाने से तीन घन निर्देशांकों में से एक +1 में और दूसरा -1 में बदल जाता है (योग 0 ही रहना चाहिए)। +1 पर, तीन संभावित निर्देशांक बदल सकते हैं, और -1 पर, शेष दो। इससे हमें छह संभावित परिवर्तन मिलते हैं। प्रत्येक षट्भुज की दिशाओं में से एक से मेल खाता है। सबसे सरल और तेज़ तरीका है परिवर्तनों की पूर्व-गणना करना और संकलन समय पर उन्हें एक घन समन्वय तालिका Cube(dx, dy, dz) में डालना:

भिन्न दिशाएँ = [घन(+1, -1, 0), घन(+1, 0, -1), घन(0, +1, -1), घन(-1, +1, 0), घन( -1, 0, +1), क्यूब(0, -1, +1) ] फ़ंक्शन क्यूब_डायरेक्शन (दिशा): वापसी दिशा फ़ंक्शन क्यूब_नेबर (हेक्स, दिशा): रिटर्न क्यूब_एड (हेक्स, क्यूब_डायरेक्शन (दिशा))

अक्षीय निर्देशांक

पहले की तरह, हम शुरुआत में घन प्रणाली का उपयोग करते हैं। आइए क्यूब(dx, dy, dz) तालिका लें और इसे हेक्स(dq, dr) तालिका में बदलें:

विभिन्न दिशाएँ = [हेक्स(+1, 0), हेक्स(+1, -1), हेक्स(0, -1), हेक्स(-1, 0), हेक्स(-1, +1), हेक्स(0, +1) ] फ़ंक्शन हेक्स_डायरेक्शन (दिशा): वापसी निर्देश फ़ंक्शन हेक्स_नेबर (हेक्स, दिशा): var dir = hex_direction (दिशा) रिटर्न हेक्स (hex.q + dir.q, hex.r + dir.r)

ऑफसेट निर्देशांक

अक्षीय निर्देशांक में, हम ग्रिड पर कहां हैं इसके आधार पर परिवर्तन करते हैं। यदि हम ऑफसेट कॉलम/पंक्ति में हैं, तो नियम बिना ऑफसेट वाले कॉलम/पंक्ति के मामले से भिन्न है।

पहले की तरह, हम उन संख्याओं की एक तालिका बनाते हैं जिन्हें कॉलम और पंक्ति में जोड़ने की आवश्यकता होती है। हालाँकि, इस बार हमारे पास दो सारणियाँ होंगी, एक विषम स्तंभों/पंक्तियों के लिए और दूसरी सम स्तंभों के लिए। ऊपर ग्रिड मानचित्र छवि में (1,1) देखें और ध्यान दें कि जैसे-जैसे आप छह दिशाओं में से प्रत्येक में आगे बढ़ते हैं, कॉलम और पंक्ति कैसे बदलती है। अब (2,2) के लिए प्रक्रिया दोहराते हैं। चार प्रकार के विस्थापन ग्रिडों में से प्रत्येक के लिए तालिकाएँ और कोड अलग-अलग होंगे; यहां प्रत्येक ग्रिड प्रकार के लिए संबंधित कोड दिया गया है।

अजीब-आर
var दिशाएँ = [ [ हेक्स(+1, 0), हेक्स(0, -1), हेक्स(-1, -1), हेक्स(-1, 0), हेक्स(-1, +1), हेक्स(0 , +1) ], [हेक्स(+1, 0), हेक्स(+1, -1), हेक्स(0, -1), हेक्स(-1, 0), हेक्स(0, +1), हेक्स( +1, +1) ] ] फ़ंक्शन ऑफ़सेट_नेबर (हेक्स, दिशा): var समता = hex.row और 1 var dir = दिशानिर्देश रिटर्न हेक्स (hex.col + dir.col, hex.row + dir.row)


सम-आर
var दिशाएँ = [ [हेक्स(+1, 0), हेक्स(+1, -1), हेक्स(0, -1), हेक्स(-1, 0), हेक्स(0, +1), हेक्स(+1) , +1) ], [हेक्स(+1, 0), हेक्स(0, -1), हेक्स(-1, -1), हेक्स(-1, 0), हेक्स(-1, +1), हेक्स (0, +1) ] ] फ़ंक्शन ऑफ़सेट_नेबर (हेक्स, दिशा): var समता = hex.row और 1 var dir = दिशानिर्देश रिटर्न हेक्स (hex.col + dir.col, hex.row + dir.row)


सम (EVEN) और विषम (ODD) पंक्तियों के लिए ग्रिड

अजीब-क्यू
var दिशाएँ = [ [ हेक्स(+1, 0), हेक्स(+1, -1), हेक्स(0, -1), हेक्स(-1, -1), हेक्स(-1, 0), हेक्स(0 , +1) ], [हेक्स(+1, +1), हेक्स(+1, 0), हेक्स(0, -1), हेक्स(-1, 0), हेक्स(-1, +1), हेक्स (0, +1) ]] फ़ंक्शन ऑफ़सेट_नेबर(हेक्स, दिशा): var समता = hex.col और 1 var dir = दिशानिर्देश रिटर्न हेक्स(hex.col + dir.col, hex.row + dir.row)


सम-क्ष
var दिशाएँ = [ [हेक्स(+1, +1), हेक्स(+1, 0), हेक्स(0, -1), हेक्स(-1, 0), हेक्स(-1, +1), हेक्स(0 , +1) ], [हेक्स(+1, 0), हेक्स(+1, -1), हेक्स(0, -1), हेक्स(-1, -1), हेक्स(-1, 0), हेक्स (0, +1) ]] फ़ंक्शन ऑफ़सेट_नेबर(हेक्स, दिशा): var समता = hex.col और 1 var dir = दिशानिर्देश रिटर्न हेक्स(hex.col + dir.col, hex.row + dir.row)


सम (EVEN) और विषम (ODD) कॉलम के लिए ग्रिड

विकर्णों

हेक्स निर्देशांक में "विकर्ण" स्थान में जाने से तीन घन निर्देशांकों में से एक में ±2 और अन्य दो में ∓1 परिवर्तन होता है (योग 0 ही रहना चाहिए)।

वार विकर्ण = [घन(+2, -1, -1), घन(+1, +1, -2), घन(-1, +2, -1), घन(-2, +1, +1) ), घन(-1, -1, +2), घन(+1, -2, +1) ] फ़ंक्शन घन_विकर्ण_पड़ोसी(हेक्स, दिशा): वापसी घन_जोड़ें(हेक्स, विकर्ण)
पहले की तरह, हम तीन निर्देशांकों में से किसी एक को हटाकर इन निर्देशांकों को अक्षीय निर्देशांक में परिवर्तित कर सकते हैं, या पहले परिणामों की गणना करके उन्हें ऑफसेट निर्देशांक में परिवर्तित कर सकते हैं।


दूरी

घन निर्देशांक

घन समन्वय प्रणाली में, प्रत्येक षट्भुज त्रि-आयामी अंतरिक्ष में एक घन है। आसन्न षट्भुज हेक्स ग्रिड में 1 दूरी पर स्थित हैं, लेकिन घन ग्रिड में 2 दूरी पर हैं। इससे दूरियों की गणना करना सरल हो जाता है। वर्गों के ग्रिड में, मैनहट्टन दूरियाँ abs(dx) + abs(dy) हैं। घनों की एक ग्रिड में, मैनहट्टन दूरियाँ abs(dx) + abs(dy) + abs(dz) हैं। षट्भुज ग्रिड में दूरी उनमें से आधे के बराबर है:

फ़ंक्शन क्यूब_डिस्टेंस (ए, बी): रिटर्न (एबीएस (ए.एक्स - बी.एक्स) + एब्स (ए.वाई - बी.वाई) + एब्स (ए.जेड - बी.जेड)) / 2
इस नोटेशन के समतुल्य यह कहना होगा कि तीन निर्देशांकों में से एक अन्य दो का योग होना चाहिए, और फिर उसे दूरी के रूप में लें। आप नीचे हाफिंग फॉर्म या अधिकतम मूल्य फॉर्म चुन सकते हैं, लेकिन वे एक ही परिणाम देते हैं:

फ़ंक्शन क्यूब_डिस्टेंस (ए, बी): रिटर्न मैक्स (एबीएस (ए.एक्स - बी.एक्स), एब्स (ए.वाई - बी.वाई), एब्स (ए.जेड - बी.जेड))
चित्र में, अधिकतम मानों को रंग में हाइलाइट किया गया है। यह भी ध्यान दें कि प्रत्येक रंग छह "विकर्ण" दिशाओं में से एक का प्रतिनिधित्व करता है।

GIF


अक्षीय निर्देशांक

अक्षीय प्रणाली में, तीसरा निर्देशांक अंतर्निहित रूप से व्यक्त किया जाता है। आइए दूरी की गणना करने के लिए अक्षीय से घन में परिवर्तित करें:

फ़ंक्शन हेक्स_डिस्टेंस(ए, बी): var ac = hex_to_cube(a) var bc = hex_to_cube(b) रिटर्न क्यूब_डिस्टेंस(ac, bc)
यदि आपके मामले में कंपाइलर इनलाइन (इनलाइन) हेक्स_टू_क्यूब और क्यूब_डिस्टेंस है, तो यह इस तरह कोड उत्पन्न करेगा:

फ़ंक्शन हेक्स_डिस्टेंस (ए, बी): रिटर्न (एबीएस (ए.क्यू - बी.क्यू) + एब्स (ए.क्यू + ए.आर - बी.क्यू - बी.आर) + एब्स (ए.आर - बी.आर)) / 2
अक्षीय निर्देशांक में षट्कोणों के बीच की दूरियों को लिखने के कई अलग-अलग तरीके हैं, लेकिन लेखन विधि की परवाह किए बिना अक्षीय प्रणाली में षट्कोणों के बीच की दूरी घन प्रणाली में मैनहट्टन दूरी से निकाली जाती है. उदाहरण के लिए, वर्णित "मतभेदों का अंतर" a.q + a.r - b.q - b.r को a.q - b.q + a.r - b.r के रूप में लिखकर और द्विभाजन फॉर्म क्यूब_डिस्टेंस के बजाय अधिकतम मूल्य फॉर्म का उपयोग करके प्राप्त किया जाता है। यदि आप घन निर्देशांक के साथ संबंध देखें तो वे सभी समान हैं।

ऑफसेट निर्देशांक

अक्षीय निर्देशांक की तरह, हम ऑफसेट निर्देशांक को घन निर्देशांक में परिवर्तित करते हैं और फिर घन दूरी का उपयोग करते हैं।

फ़ंक्शन ऑफ़सेट_डिस्टेंस(ए, बी): var ac = offset_to_cube(a) var bc = offset_to_cube(b) रिटर्न क्यूब_डिस्टेंस(ac, bc)
हम कई एल्गोरिदम के लिए समान पैटर्न का उपयोग करेंगे: हेक्सागोन्स से क्यूब्स में परिवर्तित करें, एल्गोरिदम का क्यूबिक संस्करण चलाएं, और क्यूबिक परिणामों को हेक्सागोन निर्देशांक (अक्षीय या ऑफसेट निर्देशांक) में परिवर्तित करें।

रेखाएँ खींचना

एक षट्कोण से दूसरे षट्भुज तक रेखा कैसे खींचे? मैं रेखाएँ खींचने के लिए रैखिक प्रक्षेप का उपयोग कर रहा हूँ। रेखा को N+1 बिंदुओं पर समान रूप से नमूना किया जाता है और यह गणना की जाती है कि ये नमूने किस षट्भुज में हैं।

GIF


  1. पहले हम N की गणना करते हैं, जो अंतिम बिंदुओं के बीच षट्भुज में दूरी होगी।
  2. फिर हम बिंदु A और B के बीच N+1 बिंदुओं का समान रूप से नमूना लेते हैं। रैखिक प्रक्षेप का उपयोग करते हुए, हम यह निर्धारित करते हैं कि 0 से N तक i के मानों के लिए, प्रत्येक बिंदु A + (B - A) * 1.0/N * होगा मैं । चित्र में, इन नियंत्रण बिंदुओं को नीले रंग में दिखाया गया है। परिणाम फ़्लोटिंग पॉइंट निर्देशांक है।
  3. आइए प्रत्येक नियंत्रण बिंदु (फ्लोट) को वापस हेक्सागोन्स (इंट) में परिवर्तित करें। एल्गोरिदम को क्यूब_राउंड कहा जाता है (नीचे देखें)।
A से B तक एक रेखा खींचने के लिए सब कुछ एक साथ रखें:

फ़ंक्शन lerp(a, b, t): // फ्लोट रिटर्न के लिए a + (b - a) * t फ़ंक्शन क्यूब_lerp(a, b, t): // हेक्सागोन्स रिटर्न क्यूब के लिए (lerp(a.x, b.x, t), lerp(a.y, b.y, t), lerp(a.z, b.z, t)) फ़ंक्शन क्यूब_लाइनड्रॉ (ए, बी): var N = Cube_distance(a, b) var परिणाम = प्रत्येक 0 ≤ i ≤ N के लिए: परिणाम.जोड़ें( क्यूब_राउंड(क्यूब_लेरप(ए, बी, 1.0/एन * आई))) परिणाम लौटाएं
टिप्पणियाँ:

  • ऐसे मामले हैं जहां क्यूब_लेरप एक बिंदु लौटाता है जो दो षट्भुजों के ठीक बीच के किनारे पर होता है। फिर क्यूब_राउंड इसे एक दिशा या दूसरी दिशा में ले जाता है। यदि रेखाओं को एक दिशा में ले जाया जाए तो वे बेहतर दिखती हैं। यह लूप शुरू करने से पहले एक या दोनों समापन बिंदुओं पर एक "एप्सिलॉन"-हेक्सागोनल क्यूब (1e-6, 1e-6, -2e-6) जोड़कर किया जा सकता है। यह रेखा को एक दिशा में "नज" करेगा ताकि यह किनारों से न टकराए।
  • वर्गाकार ग्रिड में डीडीए लाइन एल्गोरिदम प्रत्येक अक्ष के साथ अधिकतम दूरी के लिए एन को बराबर करता है। हम घन स्थान में वही काम करते हैं, जो षट्भुज ग्रिड में दूरी के समान है।
  • क्यूब_लेरप फ़ंक्शन को फ्लोट निर्देशांक के साथ एक क्यूब लौटाना चाहिए। यदि आप स्थिर रूप से टाइप की गई भाषा में प्रोग्रामिंग कर रहे हैं, तो आप क्यूब प्रकार का उपयोग नहीं कर पाएंगे। यदि आप किसी अन्य प्रकार को परिभाषित नहीं करना चाहते हैं तो आप इसके बजाय एक फ्लोटक्यूब प्रकार को परिभाषित कर सकते हैं, या अपने लाइन ड्राइंग कोड में एक फ़ंक्शन को इनलाइन कर सकते हैं।
  • आप इनलाइन क्यूब_लेरप द्वारा कोड को अनुकूलित कर सकते हैं और फिर लूप के बाहर B.x-A.x, B.x-A.y और 1.0/N की गणना कर सकते हैं। गुणन को बारंबार योग में बदला जा सकता है। परिणाम कुछ-कुछ डीडीए लाइन एल्गोरिदम जैसा होगा।
  • मैं रेखाएं खींचने के लिए अक्षीय या घन निर्देशांक का उपयोग करता हूं, लेकिन यदि आप ऑफसेट निर्देशांक के साथ काम करना चाहते हैं, तो देखें।
  • रेखाएँ खींचने के कई विकल्प हैं। कभी-कभी "ओवरकोटिंग" की आवश्यकता होती है। मुझे हेक्सागोन्स में सुपर-कवर लाइनें खींचने के लिए कोड भेजा गया था, लेकिन मैंने अभी तक इस पर ध्यान नहीं दिया है।

चलती हुई सीमा

समन्वय सीमा

एक षट्भुज केंद्र और एक श्रेणी N को देखते हुए, कौन से षट्भुज इसके N चरणों के भीतर हैं?

हम षट्भुज दूरी = max(abs(dx), abs(dy), abs(dz)) के बीच की दूरी सूत्र से व्युत्क्रम कर सकते हैं। N के भीतर सभी षट्भुज खोजने के लिए हमें max(abs(dx), abs(dy), abs(dz)) ≤ N की आवश्यकता है। इसका मतलब है कि सभी तीन मान आवश्यक हैं: abs(dx) ≤ N और abs(dy) ≤ N और abs(dz) ≤ N । निरपेक्ष मान को हटाने पर, हमें -N ≤ dx ≤ N और -N ≤ dy ≤ N और -N ≤ dz ≤ N प्राप्त होता है। कोड में यह एक नेस्टेड लूप होगा:

Var परिणाम = प्रत्येक -N ≤ dx ≤ N के लिए: प्रत्येक -N ≤ dy ≤ N के लिए: प्रत्येक -N ≤ dz ≤ N के लिए: यदि dx + dy + dz = 0: परिणाम.append(cube_add(center, Cube(dx) , डाई, डीजेड)))
यह चक्र चलेगा, लेकिन काफी अप्रभावी होगा. हम जिन सभी dz मानों से गुजरते हैं, उनमें से केवल एक ही वास्तव में घन स्थिति dx + dy + dz = 0 को संतुष्ट करता है। इसके बजाय, हम सीधे शर्त को संतुष्ट करते हुए dz के मान की गणना करेंगे:

Var परिणाम = प्रत्येक -N ≤ dx ≤ N के लिए: प्रत्येक max(-N, -dx-N) ≤ dy ≤ min(N, -dx+N) के लिए: var dz = -dx-dy परिणाम.जोड़ें(cube_add() केंद्र, घन(dx, dy, dz)))
यह चक्र केवल आवश्यक निर्देशांक के साथ ही गुजरता है। चित्र में, प्रत्येक श्रेणी रेखाओं की एक जोड़ी है। प्रत्येक पंक्ति एक असमानता है. हम सभी षट्भुज लेते हैं जो छह असमानताओं को संतुष्ट करते हैं।

GIF


ओवरलैपिंग श्रेणियाँ

यदि आपको ऐसे षट्भुज खोजने की आवश्यकता है जो कई श्रेणियों में हैं, तो आप षट्भुजों की सूची तैयार करने से पहले श्रेणियों को काट सकते हैं।

आप इस समस्या को बीजगणित या ज्यामिति के दृष्टिकोण से देख सकते हैं। बीजगणितीय रूप से, प्रत्येक डोमेन को -N ≤ dx ≤ N के रूप में असमानता की स्थिति के रूप में व्यक्त किया जाता है, और हमें इन स्थितियों का प्रतिच्छेदन खोजने की आवश्यकता है। ज्यामितीय रूप से, प्रत्येक क्षेत्र 3डी अंतरिक्ष में एक घन है, और हम 3डी अंतरिक्ष में एक घनाभ प्राप्त करने के लिए 3डी अंतरिक्ष में दो घनों को प्रतिच्छेद करेंगे। फिर हम षट्कोण प्राप्त करने के लिए इसे वापस x + y + z = 0 तल पर प्रक्षेपित करते हैं। मैं इस समस्या को बीजगणितीय तरीके से हल करूंगा।

सबसे पहले, हम स्थिति -N ≤ dx ≤ N को अधिक सामान्य रूप x min ≤ x ≤ x max में फिर से लिखते हैं, और x min = केंद्र.x - N और x अधिकतम = केंद्र.x + N लेते हैं। आइए y और z के लिए भी ऐसा ही करें, जिसके परिणामस्वरूप पिछले अनुभाग से कोड का सामान्य रूप प्राप्त होगा:

Var परिणाम = प्रत्येक xmin के लिए ≤ z))
दो श्रेणियों a ≤ x ≤ b और c ≤ x ≤ d का प्रतिच्छेदन max(a, c) ≤ x ≤ min(b, d) है। चूँकि हेक्सागोन्स का क्षेत्रफल x, y, z से अधिक श्रेणियों के रूप में व्यक्त किया जाता है, हम प्रत्येक रेंज x, y, z को अलग-अलग काट सकते हैं और फिर चौराहे में हेक्सागोन्स की एक सूची तैयार करने के लिए नेस्टेड लूप का उपयोग कर सकते हैं। षट्भुज के एक क्षेत्र के लिए हम x min = H.x - N और x max = H.x + N लेते हैं, इसी प्रकार y और z के लिए। दो षट्भुज क्षेत्रों के प्रतिच्छेदन के लिए, हम x मिनट = अधिकतम (H1.x - N, H2.x - N) और x अधिकतम = न्यूनतम (H1.x + N, H2.x + N) लेते हैं, इसी तरह y और के लिए z . एक ही पैटर्न तीन या अधिक क्षेत्रों के प्रतिच्छेदन के लिए काम करता है।

GIF


बाधाएं

यदि बाधाएं हैं, तो सबसे आसान तरीका दूरी सीमा (चौड़ाई-पहली खोज) भरना है। नीचे दिए गए चित्र में हम स्वयं को चार चालों तक सीमित रखते हैं। कोड में, फ्रिंजेस[k] सभी षट्भुजों की एक सरणी है जिन तक k चरणों में पहुंचा जा सकता है। हर बार जब हम मुख्य लूप से गुजरते हैं, तो हम स्तर k-1 को स्तर k से विस्तारित करते हैं।

फ़ंक्शन क्यूब_रीचेबल (प्रारंभ, आंदोलन): var विज़िट = सेट() प्रत्येक 1 के लिए विज़िट किए गए var fringes = fringes.append() में प्रारंभ जोड़ें< k ≤ movement: fringes.append() for each cube in fringes: for each 0 ≤ dir < 6: var neighbor = cube_neighbor(cube, dir) if neighbor not in visited, not blocked: add neighbor to visited fringes[k].append(neighbor) return visited

मोड़ों

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

दाईं ओर 60° का घुमाव प्रत्येक समन्वय को एक स्थिति दाईं ओर ले जाता है:

[x, y, z] से [-z, -x, -y]
बायीं ओर 60° घूमने पर प्रत्येक व्यक्ति बायीं ओर एक स्थिति का समन्वय करता है:

[x, y, z] से [-y, -z, -x]



"खेलने के बाद" [मूल लेख में] आरेख के साथ, आप देख सकते हैं कि प्रत्येक घुमाव 60° है परिवर्तनसंकेत और निर्देशांक को भौतिक रूप से "घुमाता" है। 120° घूमने के बाद, चिन्ह फिर से वही हो जाते हैं। 180° घूमने पर संकेत बदल जाते हैं, लेकिन निर्देशांक अपनी मूल स्थिति में लौट आते हैं।

यहां केंद्रीय स्थिति C के चारों ओर स्थिति P के घूमने का पूरा क्रम दिया गया है, जिसके परिणामस्वरूप एक नई स्थिति R बनती है:

  1. P और C स्थितियों को घन निर्देशांक में परिवर्तित करें।
  2. केंद्र को घटाकर एक वेक्टर की गणना करना: P_from_C = P - C = Cube(P.x - C.x, P.y - C.y, P.z - C.z) .
  3. ऊपर वर्णित अनुसार वेक्टर P_from_C को घुमाएं और अंतिम वेक्टर को पदनाम R_from_C निर्दिष्ट करें।
  4. केंद्र को जोड़कर वेक्टर को वापस स्थिति में परिवर्तित करना: R = R_from_C + C = Cube(R_from_C.x + C.x, R_from_C.y + C.y, R_from_C.z + C.z) ।
  5. घन स्थिति R को वापस वांछित समन्वय प्रणाली में परिवर्तित करता है।
परिवर्तन के कई चरण हैं, लेकिन उनमें से प्रत्येक काफी सरल है। अक्षीय निर्देशांक में रोटेशन को सीधे परिभाषित करके इनमें से कुछ चरणों को छोटा करना संभव है, लेकिन हेक्स वैक्टर ऑफसेट निर्देशांक के साथ काम नहीं करते हैं, और मुझे नहीं पता कि ऑफसेट निर्देशांक के लिए चरणों को कैसे छोटा किया जाए। रोटेशन की गणना करने के अन्य तरीकों के लिए स्टैकएक्सचेंज पर चर्चा भी देखें।

रिंगों

साधारण अंगूठी

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

फ़ंक्शन क्यूब_रिंग(केंद्र, त्रिज्या): var परिणाम = # यह कोड त्रिज्या == 0 के लिए काम नहीं करता है; क्या आप समझते हैं क्यों? var क्यूब = क्यूब_ऐड(केंद्र, क्यूब_स्केल(क्यूब_दिशा(4), त्रिज्या)) प्रत्येक 0 के लिए ≤ i< 6: for each 0 ≤ j < radius: results.append(cube) cube = cube_neighbor(cube, i) return results
इस कोड में, क्यूब एक रिंग पर शुरू होता है, जिसे केंद्र से कोने तक एक बड़े तीर के साथ आरेख में दिखाया गया है। मैंने शुरुआत के लिए कोण 4 को चुना क्योंकि यह उस पथ से मेल खाता है जिस दिशा में मेरी दिशा संख्याएँ चल रही हैं। आपको एक भिन्न आरंभिक कोण की आवश्यकता हो सकती है. आंतरिक लूप के प्रत्येक चरण में, घन रिंग के चारों ओर एक षट्भुज घुमाता है। 6 * त्रिज्या कदमों के बाद वह वहीं समाप्त होता है जहां से उसने शुरू किया था।


सर्पिल छल्ले

सर्पिल पैटर्न में छल्लों से गुजरते हुए, हम छल्लों के अंदरूनी हिस्सों को भर सकते हैं:

फ़ंक्शन क्यूब_स्पाइरल (केंद्र, त्रिज्या): var परिणाम = प्रत्येक 1 ≤ k ≤ त्रिज्या के लिए: परिणाम = परिणाम + क्यूब_रिंग (केंद्र, k) रिटर्न परिणाम



एक बड़े षट्भुज का क्षेत्रफल सभी वृत्तों का योग प्लस केंद्र के लिए 1 है। क्षेत्रफल की गणना के लिए इस सूत्र का उपयोग करें.

इस तरह से षट्कोणों को पार करने का उपयोग गति की सीमा की गणना करने के लिए भी किया जा सकता है (ऊपर देखें)।

दृश्यता का क्षेत्र

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

यह एल्गोरिदम बड़े क्षेत्रों में धीमा हो सकता है, लेकिन इसे लागू करना आसान है, इसलिए मैं इसके साथ शुरुआत करने की सलाह देता हूं।

GIF



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

मैं भविष्य में इस गाइड का विस्तार करना चाहता हूं। मेरे पास है



यादृच्छिक लेख

ऊपर