اسپانیایی پرواز دو نفره - چگونه بر میل جنسی در زنان و مردان تأثیر می گذارد
محتویات افزودنی فعال بیولوژیکی بر اساس عصاره به دست آمده از سوسک با مگس (یا مگس...
مبحث چند ضلعی ها در برنامه درسی مدارس مطرح شده است اما توجه کافی به آن ندارند. در همین حال، جالب است، و این به ویژه در مورد شش ضلعی یا شش ضلعی منظم صادق است - از این گذشته، بسیاری از اشیاء طبیعی این شکل را دارند. اینها شامل لانه زنبوری و غیره است. این فرم در عمل بسیار خوب اعمال می شود.
شش ضلعی منتظم شکل صفحه ای است که دارای شش ضلع مساوی طول و به همان تعداد زاویه مساوی است.
اگر فرمول مجموع زوایای یک چندضلعی را به خاطر بیاوریم
معلوم می شود که در این شکل برابر با 720 درجه است. خوب، از آنجایی که تمام زوایای شکل برابر است، محاسبه اینکه هر یک از آنها برابر با 120 درجه است آسان است.
کشیدن شش ضلعی بسیار ساده است، تنها چیزی که نیاز دارید یک قطب نما و یک خط کش است.
دستورالعمل گام به گام به شکل زیر خواهد بود:
در صورت تمایل، می توانید بدون خط با کشیدن پنج دایره با شعاع مساوی انجام دهید.
شکلی که به این ترتیب به دست می آید یک شش ضلعی منظم خواهد بود و این را می توان در زیر ثابت کرد.
برای درک خواص یک شش ضلعی منظم، منطقی است که آن را به شش مثلث تقسیم کنیم:
این در آینده به نمایش واضح تر ویژگی های آن کمک می کند که اصلی ترین آنها عبارتند از:
می توان یک دایره را در اطراف یک شش ضلعی توصیف کرد، و علاوه بر این، فقط یک. از آنجایی که این شکل درست است، می توانید آن را به سادگی انجام دهید: یک نیمساز را از دو زاویه مجاور در داخل بکشید. آنها در نقطه O قطع می شوند و همراه با ضلع بین آنها یک مثلث را تشکیل می دهند.
زوایای بین ضلع شش ضلعی و نیمسازها هر کدام 60 درجه خواهد بود، بنابراین به طور قطع می توان گفت که یک مثلث، به عنوان مثال، AOB، متساوی الساقین است. و از آنجا که زاویه سوم نیز برابر با 60 درجه خواهد بود، آن نیز متساوی الاضلاع است. نتیجه می شود که بخش های OA و OB برابر هستند، به این معنی که آنها می توانند به عنوان شعاع دایره عمل کنند.
پس از آن می توانید به ضلع بعدی بروید و همچنین یک نیمساز از زاویه نقطه C رسم کنید. مثلث متساوی الاضلاع دیگری ظاهر می شود و ضلع AB همزمان با دو مشترک خواهد بود و OS شعاع بعدی خواهد بود که همان دایره از آن عبور می کند. در مجموع شش مثلث از این قبیل وجود خواهد داشت و آنها یک راس مشترک در نقطه O خواهند داشت. معلوم می شود که توصیف دایره امکان پذیر خواهد بود و آن فقط یک است و شعاع آن برابر با ضلع شش ضلعی است. :
به همین دلیل است که می توان این شکل را با کمک قطب نما و خط کش ساخت.
خوب، مساحت این دایره استاندارد خواهد بود:
مرکز دایره محاط شده با مرکز دایره محاطی منطبق است. برای تأیید این موضوع، می توانیم از نقطه O به اضلاع شش ضلعی عمود بکشیم. آنها ارتفاع آن مثلث هایی خواهند بود که شش ضلعی را تشکیل می دهند. و در مثلث متساوی الساقین، ارتفاع نسبت به ضلعی که روی آن قرار دارد، میانه است. بنابراین، این ارتفاع چیزی نیست جز نیمساز عمود بر آن که شعاع دایره محاطی است.
ارتفاع مثلث متساوی الاضلاع به سادگی محاسبه می شود:
h²=a²-(a/2)²= a²3/4، h=a(√3)/2
و چون R=a و r=h معلوم می شود که
r=R(√3)/2.
بنابراین، دایره محاط شده از مرکز اضلاع یک شش ضلعی منظم عبور می کند.
مساحت آن خواهد بود:
S=3πa²/4,
یعنی سه چهارم آن چیزی که توضیح داده شد.
همه چیز با محیط مشخص است، این مجموع طول اضلاع است:
P=6a، یا P=6R
اما مساحت برابر با مجموع هر شش مثلثی خواهد بود که شش ضلعی را می توان به آنها تقسیم کرد. از آنجایی که مساحت مثلث نصف حاصلضرب قاعده و ارتفاع محاسبه می شود، پس:
S \u003d 6 (a / 2) (a (√3) / 2) \u003d 6a² (√3) / 4 \u003d 3a² (√3) / 2یا
S=3R²(√3)/2
کسانی که می خواهند این مساحت را از طریق شعاع دایره محاطی محاسبه کنند، می توانند این کار را انجام دهند:
S=3(2r/√3)²(√3)/2=r²(2√3)
یک مثلث را می توان در یک شش ضلعی حک کرد که اضلاع آن رئوس را از طریق یکی به هم متصل می کند:
در مجموع دو نفر از آنها وجود خواهد داشت و تحمیل آنها به یکدیگر ستاره داوود را به ارمغان می آورد. هر یک از این مثلث ها متساوی الاضلاع هستند. این به راحتی قابل تأیید است. اگر به سمت AC نگاه کنید، آنگاه به دو مثلث در آن واحد تعلق دارد - BAC و AEC. اگر در اولین آنها AB \u003d قبل از میلاد، و زاویه بین آنها 120 درجه باشد، هر یک از بقیه 30 درجه خواهد بود. از اینجا می توان نتیجه گیری منطقی گرفت:
مثلث ها که با یکدیگر قطع می شوند، شش ضلعی جدید تشکیل می دهند و همچنین منظم است. اثبات آن آسان است:
بنابراین، این شکل با علائم یک شش ضلعی منظم مطابقت دارد - دارای شش ضلع و زاویه مساوی است. از تساوی مثلث ها در رئوس، به راحتی می توان طول ضلع شش ضلعی جدید را استنتاج کرد:
d=а(√3)/3
همچنین شعاع دایره ای خواهد بود که در اطراف آن توضیح داده شده است. شعاع کتیبه نصف ضلع شش ضلعی بزرگ خواهد بود که با در نظر گرفتن مثلث ABC ثابت شد. ارتفاع آن دقیقاً نصف ضلع است، بنابراین، نیمه دوم شعاع دایره ای است که در شش ضلعی کوچک حک شده است:
r2=а/2
S=(3(√3)/2)(а(√3)/3)²=а(√3)/2
معلوم شد که مساحت شش ضلعی داخل ستاره داوود سه برابر کوچکتر از مساحت شش ضلعی بزرگی است که ستاره در آن حک شده است.
خواص شش ضلعی هم در طبیعت و هم در زمینه های مختلف فعالیت انسانی بسیار فعال است. اول از همه، این در مورد پیچ و مهره ها صدق می کند - کلاه های اول و دوم چیزی بیش از یک شش ضلعی معمولی نیستند، اگر پخ ها را در نظر نگیرید. اندازه آچارها مطابق با قطر دایره محاطی است - یعنی فاصله بین چهره های مخالف.
کاربرد آن و کاشی های شش ضلعی را پیدا کرده است. این بسیار کمتر از یک چهار گوش رایج است، اما راحت تر است که آن را بگذارید: سه کاشی در یک نقطه به هم می رسند، نه چهار. ترکیب ها می توانند بسیار جالب باشند:
سنگ فرش های بتنی نیز تولید می شود.
شیوع شش ضلعی در طبیعت به سادگی توضیح داده شده است. بنابراین، اگر دایرهها و توپها قطر یکسانی داشته باشند، راحتتر میتوان آنها را محکم روی یک هواپیما قرار داد. به همین دلیل لانه زنبوری ها چنین شکلی دارند.
ساخت یک شش ضلعی منظم که در یک دایره حک شده است. ساخت یک پنج ضلعی منظم با توجه به طرف آن. سوزن قطب نما را به نقطه تقاطع قوس تازه کشیده شده با دایره حرکت دهید. این ساخت و ساز را می توان با استفاده از یک مربع و یک قطب نما انجام داد. یک شش ضلعی منظم را می توان با استفاده از یک مربع T و یک مربع 30×60 درجه ساخت. نقاط رأس گوشه های یک شش ضلعی منظم را بسازید.
ساخت مثلث متساوی الاضلاع محاط شده در دایره. رئوس چنین مثلثی را می توان با استفاده از قطب نما و مربع با زوایای 30 و 60 درجه یا فقط یک قطب نما ساخت. برای ساخت ضلع 2-3، T-square را در موقعیتی قرار دهید که با خطوط چین نشان داده شده است، و یک خط مستقیم از نقطه 2 بکشید، که راس سوم مثلث را مشخص می کند.
نقطه 1 را روی دایره علامت گذاری می کنیم و آن را به عنوان یکی از رئوس پنج ضلعی می گیریم. اجازه دهید دایره ای به قطر D داده شود. شما باید یک هفت ضلعی منتظم را در آن حک کنید (شکل 65). قطر عمودی دایره را به هفت قسمت مساوی تقسیم کنید. از نقطه 7 با شعاع برابر با قطر دایره D، کمان را تا زمانی که با ادامه قطر افقی در نقطه F قطع شود توصیف می کنیم. نقطه F را قطب چندضلعی می گویند.
ستون اول این جدول شامل تعداد اضلاع یک چند ضلعی منظم و ستون دوم شامل ضرایب است. طول یک ضلع از چند ضلعی معین از ضرب شعاع یک دایره معین در ضریب مربوط به تعداد اضلاع این چند ضلعی به دست می آید.
موضوع این فیلم آموزشی «ساخت چند ضلعی منتظم» است. ما همچنین یک بار دیگر تعریف یک چند ضلعی منظم را ارائه می دهیم، آن را به صورت گرافیکی به تصویر می کشیم، پس از آن یک بار دیگر مطمئن خواهیم شد که مراکز دایره های محاط شده و محصور در اطراف چنین شکلی با هم مطابقت دارند. یک دایره همیشه می تواند در این چند ضلعی محاط شود و یک دایره همیشه می تواند دور آن محصور شود. در درس های قبلی متوجه شدیم که نقش اساسی برای توصیف ویژگی های چندضلعی ها توسط نیمسازهای زوایای آن و نیمسازهای عمود بر اضلاع آن ایفا می شود.
4. مثلث منظم مورد نظر ABC را به دست آوردیم. مشکل حل شد. 3. با قرار دادن یک پایه قطب نما در نقطه دلخواه A1 روی دایره، با کمک پایه دوم نقطه A2 را روی همان دایره علامت گذاری می کنیم و آن را با نقطه A1 وصل می کنیم. ضلع اول شش ضلعی را می گیریم. 3. با استفاده از نیمسازهای عمود بر اضلاع چند ضلعی که از نقطه O پایین آمده اند، تمام اضلاع آن و تمام کمان های دایره محصور در بین رئوس مجاور آن را به نصف تقسیم می کنیم.
ساختارهای هندسی یکی از بخش های مهم یادگیری است. سوزن باید خط کشیده شده را سوراخ کند. هرچه قطب نما دقیق تر تنظیم شود، ساختار دقیق تر خواهد بود. یک کمان دیگر بکشید که دایره را قطع می کند. تمام شش نقطه تقاطع کمان ها را با دایره ترسیم شده اولیه به طور پیوسته وصل کنید. در این مورد، شش ضلعی ممکن است اشتباه باشد.
رئوس پیدا شده را به صورت سری به یکدیگر وصل می کنیم. هفت ضلعی را می توان با کشیدن پرتوهای قطب F و از طریق تقسیمات فرد قطر عمودی ساخت. مرکز هر دو دایره بر هم منطبق است (نقطه O در شکل 1). شکل همچنین شعاع دایره های محدود شده (R) و محاطی (r) را نشان می دهد.
ساخت یک شش ضلعی بر این اساس است که ضلع آن برابر با شعاع دایره محصور است. در این درس به روش های ساخت چند ضلعی های منظم با استفاده از قطب نما و خط کش می پردازیم. روش دوم بر این اساس استوار است که اگر یک شش ضلعی منظم که در یک دایره محاط شده است بسازید و سپس رئوس آن را از طریق یکی وصل کنید، یک مثلث متساوی الاضلاع به دست می آید. روش فوق برای ساخت چند ضلعی های منظم با هر تعداد ضلع مناسب است.
ساخت یک شش ضلعی منظم که در یک دایره حک شده است.ساخت یک شش ضلعی بر این اساس است که ضلع آن برابر با شعاع دایره محصور است. بنابراین برای ساختن کافی است دایره را به شش قسمت مساوی تقسیم کنیم و نقاط پیدا شده را به یکدیگر متصل کنیم (شکل 60، الف).
یک شش ضلعی منظم را می توان با استفاده از یک مربع T و یک مربع 30×60 درجه ساخت. برای انجام این ساخت، قطر افقی دایره را به عنوان نیمساز زوایای 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، کافی است یک زاویه 30 درجه در نقطه 1 و ضلع 0-1 ایجاد کنید. برای این کار مربع T و مربع را مانند شکل تنظیم کنید، یک خط 1-2 بکشید که یکی از اضلاع مثلث مورد نظر خواهد بود. برای ساخت ضلع 2-3، T-square را در موقعیتی قرار دهید که با خطوط چین نشان داده شده است، و یک خط مستقیم از نقطه 2 بکشید، که راس سوم مثلث را مشخص می کند.
راه دومبر این اساس استوار است که اگر یک شش ضلعی منظم که در یک دایره محاط شده است بسازید و سپس رئوس آن را از طریق یکی وصل کنید، یک مثلث متساوی الاضلاع به دست می آید.
برای ساختن مثلث (شکل 61، ب)، یک راس-نقطه 1 را روی قطر مشخص می کنیم و یک خط قطری 1-4 می کشیم. علاوه بر این، از نقطه 4 با شعاع برابر با D / 2، ما قوس را تا زمانی که با دایره در نقاط 3 و 2 قطع می شود، توصیف می کنیم. نقاط حاصل دو راس دیگر مثلث مورد نظر خواهند بود.
ساخت مربع حک شده در دایره. این ساخت و ساز را می توان با استفاده از یک مربع و یک قطب نما انجام داد.
روش اول مبتنی بر این واقعیت است که مورب های مربع در مرکز دایره محصور شده قطع می شوند و با زاویه 45 درجه به محورهای آن متمایل می شوند. بر این اساس، یک T-square و یک مربع با زوایای 45 درجه را همانطور که در شکل نشان داده شده است، نصب می کنیم. 62، a، و نقاط 1 و 3 را علامت گذاری کنید. در ادامه، از طریق این نقاط، اضلاع افقی مربع را به کمک یک T-square 4-1 و 3-2 می کشیم. سپس با استفاده از یک T-square در امتداد ساق مربع، اضلاع عمودی مربع را 1-2 و 4-3 می کشیم.
روش دوم مبتنی بر این واقعیت است که رئوس مربع، کمان های دایره محصور در بین انتهای قطر را نصف می کند (شکل 62، ب). نقاط A، B و C را در انتهای دو قطر متقابل عمود بر هم علامت گذاری می کنیم، و از آنها با شعاع y، کمان ها را تا زمانی که یکدیگر را قطع کنند، توصیف می کنیم.
علاوه بر این، از طریق نقاط تقاطع کمان ها، خطوط کمکی را ترسیم می کنیم که روی شکل با خطوط ثابت مشخص شده اند. نقاط تقاطع آنها با دایره، رئوس 1 و 3 را مشخص می کند. 4 و 2. رئوس مربع مورد نظر به دست آمده از این طریق به صورت سری به یکدیگر متصل می شوند.
ساخت یک پنج ضلعی منظم که در یک دایره حک شده است.
برای حک کردن یک پنج ضلعی منتظم در دایره (شکل 63)، ساختارهای زیر را می سازیم.
نقطه 1 را روی دایره علامت گذاری می کنیم و آن را به عنوان یکی از رئوس پنج ضلعی می گیریم. بخش AO را به نصف تقسیم کنید. برای این کار با شعاع AO از نقطه A، قوس تقاطع با دایره در نقاط M و B را توصیف می کنیم، با اتصال این نقاط با یک خط مستقیم، نقطه K را به دست می آوریم که سپس آن را به نقطه 1 وصل می کنیم. با شعاع برابر با قطعه A7، قوس را از نقطه K تا تقاطع با خط قطری AO در نقطه H توصیف می کنیم. با اتصال نقطه 1 به نقطه H، ضلع پنج ضلعی را می گیریم. سپس، با یک باز شدن قطب نما برابر با قطعه 1H، که قوس را از راس 1 تا تقاطع دایره را توصیف می کند، رئوس 2 و 5 را می یابیم. با ایجاد بریدگی از راس های 2 و 5 با همان باز شدن قطب نما، باقی مانده را بدست می آوریم. رئوس 3 و 4. نقاط پیدا شده را به ترتیب به یکدیگر متصل می کنیم.
ساخت یک پنج ضلعی منظم با توجه به طرف آن.
برای ساختن یک پنج ضلعی منظم در امتداد ضلع داده شده آن (شکل 64)، قطعه AB را به شش قسمت مساوی تقسیم می کنیم. از نقاط A و B با شعاع AB کمان هایی را توصیف می کنیم که از محل تقاطع آنها نقطه K به دست می آید. از طریق این نقطه و تقسیم 3 روی خط AB یک خط عمودی رسم می کنیم.
نقطه 1-راس پنج ضلعی را بدست می آوریم. سپس با شعاع AB از نقطه 1 قوس تا تقاطع را با کمان هایی که قبلاً از نقاط A و B کشیده شده اند توصیف می کنیم. نقاط تلاقی کمان ها راس پنج ضلعی 2 و 5 را مشخص می کنیم. رئوس به صورت سری با یکدیگر
ساخت یک هفت ضلعی منظم که در یک دایره حک شده است.
اجازه دهید دایره ای به قطر D داده شود. شما باید یک هفت ضلعی منتظم را در آن حک کنید (شکل 65). قطر عمودی دایره را به هفت قسمت مساوی تقسیم کنید. از نقطه 7 با شعاع برابر با قطر دایره D، کمان را تا زمانی که با ادامه قطر افقی در نقطه F قطع شود توصیف می کنیم. نقطه F را قطب چندضلعی می گویند. با در نظر گرفتن نقطه VII به عنوان یکی از رئوس هفت ضلعی، پرتوهایی را از قطب F از طریق تقسیمات زوج قطر عمودی ترسیم می کنیم که تقاطع آن با دایره، رئوس VI، V و IV هفت ضلعی را مشخص می کند. برای به دست آوردن رئوس / - // - /// از نقاط IV، V و VI، خطوط افقی را آنقدر ترسیم می کنیم که با دایره قطع شوند. رئوس پیدا شده را به صورت سری به یکدیگر وصل می کنیم. هفت ضلعی را می توان با کشیدن پرتوهای قطب F و از طریق تقسیمات فرد قطر عمودی ساخت.
روش فوق برای ساخت چند ضلعی های منظم با هر تعداد ضلع مناسب است.
تقسیم دایره به هر تعداد قسمت مساوی را نیز می توان با استفاده از داده های جدول انجام داد. 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 است. برای ساختن آن، باید مستقیم بسازیم گوشهسه گوشهنیک شاید بتوانیم دو خط عمود بر هم بسازیم. اما مماس 30 درجه یک عدد غیر منطقی است، بنابراین ما فقط می توانیم نسبت بین پاها را تقریباً محاسبه کنیم (فقط در صورتی که ماشین حساب وجود نداشته باشد) و بنابراین، بسازیم گوشهحدود 30 درجه
4. در این صورت امکان ساخت دقیق نیز وجود دارد. ما مجدداً دو خط عمود بر هم خواهیم داشت که پاها مستقیماً روی آنها قرار می گیرند گوشهسه گوشهنیکا اجازه دهید با تکیه گاه قطب نما یک پای مستقیم BC را کنار بگذاریم (B یک راست است گوشه). بعد از آن طول بین پایه های قطب نما را 2 برابر افزایش می دهیم که ابتدایی است. با رسم دایره ای به مرکز نقطه C با شعاع این طول، نقطه تلاقی دایره را با خط مستقیم دیگری می یابیم. این نقطه نقطه A مستقیم خواهد بود گوشهسه گوشه ABC، و گوشه A برابر با 30 درجه خواهد بود.
5. راست گوشهدر 30 درجه مجاز است و با پشتیبانی از دایره، اعمال آن برابر است؟/6. بیایید دایره ای با شعاع OB بسازیم. اجازه دهید در تئوری در نظر بگیریم گوشهدایره، که در آن OA = OB = R شعاع دایره است، جایی که گوشه OAB = 30 درجه. فرض کنید OE ارتفاع این مثلث متساوی الساقین باشد گوشه nika و در نتیجه نیمساز و میانه آن. سپس گوشه AOE = 15 درجه، و با فرمول نیم زاویه، sin(15o) = (sqrt(3)-1)/(2*sqrt(2)). بنابراین، AE = R*sin(15o). Otsel، AB = 2AE = 2R*sin(15o). با ساختن دایره ای با شعاع BA به مرکز نقطه B، نقطه تقاطع A این دایره را با نقطه اولیه پیدا می کنیم. زاویه AOB 30 درجه خواهد بود.
6. اگر بتوانیم طول قوس ها را به نحوی تعیین کنیم، با کنار گذاشتن قوس طولی ?*R/6 نیز به دست می آوریم. گوشهدر 30 درجه
توجه داشته باشید!
باید به خاطر داشت که در بند 5 ما فقط می توانیم یک زاویه را تقریب کنیم، زیرا اعداد غیر منطقی در محاسبات ظاهر می شوند.
شش ضلعییک حالت خاص از یک چند ضلعی نامیده می شود - شکلی که توسط اکثر نقاط در صفحه ای که توسط یک چند خط بسته محدود شده است تشکیل می شود. یک شش ضلعی مثبت (شش ضلعی)، به نوبه خود، نیز یک مورد خاص است - این یک چند ضلعی با شش ضلع مساوی و زاویه مساوی است. این رقم از این جهت حائز اهمیت است که طول تمام اضلاع آن برابر با شعاع دایره توصیف شده در اطراف شکل است.
شما نیاز خواهید داشت
1. طول ضلع شش ضلعی را انتخاب کنید. یک قطب نما بردارید و فاصله بین انتهای سوزن که روی یکی از پایه های آن قرار دارد و انتهای قلم واقع در پای دیگر را برابر با طول ضلع شکل کشیده شده تعیین کنید. برای انجام این کار، می توانید از یک خط کش استفاده کنید یا اگر این لحظه قابل توجه نیست، فاصله تصادفی را ترجیح دهید. در صورت امکان پایه های قطب نما را با یک پیچ ثابت کنید.
2. با قطب نما یک دایره بکشید. فاصله انتخاب شده بین پاها شعاع دایره خواهد بود.
3. دایره با نقطه را به شش قسمت مساوی تقسیم کنید. این نقاط رئوس گوشه های شش ضلعی و بر این اساس، انتهای بخش هایی خواهند بود که اضلاع آن را نشان می دهند.
4. پایه قطب نما را با سوزن روی یک نقطه دلخواه واقع در خط دایره مشخص شده قرار دهید. سوزن باید به درستی خط را سوراخ کند. دقت ساخت و سازها به طور مستقیم به دقت نصب قطب نما بستگی دارد. با قطب نما یک کمان بکشید تا در 2 نقطه دایره ترسیم شده را در ابتدا قطع کند.
5. پایه قطب نما را با سوزن به یکی از نقاط تلاقی قوس کشیده شده با دایره اصلی حرکت دهید. یک کمان دیگر بکشید که دایره را نیز در 2 نقطه قطع می کند (یکی از آنها با نقطه محل قبلی سوزن قطب نما منطبق است).
6. به همین ترتیب، سوزن قطب نما را دوباره مرتب کنید و چهار بار دیگر قوس ها را بکشید. پایه قطب نما را با سوزن در یک جهت در اطراف محیط حرکت دهید (به طور ثابت در جهت عقربه های ساعت یا خلاف جهت عقربه های ساعت). در نتیجه باید شش نقطه تلاقی کمان ها با دایره ساخته شده اولیه مشخص شود.
7. شش ضلعی مثبت رسم کنید. گام به گام به صورت جفت، شش نقطه به دست آمده در مرحله قبل را با قطعات ترکیب کنید. پاره های خط را با مداد و خط کش بکشید. نتیجه یک شش ضلعی واقعی خواهد بود. بعداً، اجرای ساخت و ساز مجاز است تا عناصر کمکی (قوس ها و دایره ها) را پاک کند.
توجه داشته باشید!
منطقی است که چنین فاصله ای را بین پایه های قطب نما انتخاب کنید، به طوری که زاویه بین آنها برابر با 15-30 درجه باشد، برعکس، هنگام ساخت سازه ها، این فاصله می تواند به راحتی از بین برود.
هنگام ساخت یا توسعه طرح های طراحی خانه، اغلب لازم است که بسازید گوشه، برابر با موجود است. نمونه ها و مهارت های هندسه مدرسه پشتیبانی می شوند.
1. یک زاویه توسط دو خط مستقیم که از یک نقطه سرچشمه می گیرند تشکیل می شود. این نقطه را رئوس گوشه می نامند و خطوط اضلاع گوشه خواهند بود.
2. از سه حرف برای مشخص کردن گوشه ها استفاده کنید: یکی در بالا، دو حرف در طرفین. نامیده می شوند گوشهبا حرفی که در یک طرف ایستاده شروع می شود، سپس حرف را در بالا ایستاده و بعد از آن حرف طرف دیگر را می گویند. اگر در مقابل راحتتر هستید، از روشهای دیگر برای علامتگذاری گوشهها استفاده کنید. گاهی اوقات فقط یک حرف خوانده می شود که در بالا قرار دارد. و تعیین زاویه با حروف یونانی مجاز است، مثلاً α، β، γ.
3. موقعیت هایی وجود دارد که شما نیاز به نقاشی دارید گوشهبه طوری که برابر با زاویه داده شده باشد. در صورت عدم استفاده از نقاله در هنگام ساخت نقشه، این کار فقط با خط کش و قطب نما مجاز است. ممکن است، روی خط مستقیمی که در نقاشی با حروف MN نشان داده شده است، لازم است ساخت گوشهدر نقطه K، به طوری که با زاویه B برابر است. یعنی از نقطه K باید یک خط مستقیم با خط MN رسم کنید. گوشه، چیزی که برابر با زاویه B خواهد بود.
4. ابتدا یک نقطه در تمام ضلع این گوشه، مثلاً نقاط A و C علامت بزنید، سپس نقاط C و A را با یک خط مستقیم یکی کنید. دریافت سه گوشهنیک ABC.
5. حالا روی خط MN همان سه را بسازید گوشهبه طوری که راس B آن روی خط در نقطه K باشد. از قانون برای ساختن مثلث استفاده کنید گوشهنیکا از سه طرف قطعه KL را از نقطه K کنار بگذارید. باید برابر با قطعه BC باشد. نقطه L را دریافت کنید.
6. از نقطه K دایره ای با شعاع برابر با قطعه BA رسم کنید. از L دایره ای با شعاع CA رسم کنید. نقطه (P) حاصل از تقاطع 2 دایره را با K ترکیب کنید گوشهنیک KPL، یکی که برابر با tre خواهد بود گوشهنیکو ABC. بنابراین شما دریافت می کنید گوشه K. برابر با زاویه B خواهد بود. برای اینکه این ساختار راحتتر و سریعتر شود، بخشهای مساوی را از راس B کنار بگذارید، با استفاده از یک محلول قطبنما، بدون حرکت دادن پاها، دایره را با همان شعاع از نقطه K توصیف کنید.
ویدیو های مرتبط
توجه داشته باشید!
از دگردیسی تصادفی فاصله بین پایه های قطب نما اجتناب کنید. در این مورد، شش ضلعی ممکن است اشتباه باشد.
مشاوره مفید
ساختن سازه ها با کمک قطب نما با قلم کاملاً تیز منطقی است. بنابراین ساخت و سازها به ویژه دقیق خواهند بود.
شبکه های شش ضلعی (شبکه های شش ضلعی) در برخی از بازی ها استفاده می شود، اما آنها به سادگی و معمولی شبکه های مستطیل نیستند. من تقریباً 20 سال است که منابعی را درباره شبکه های هگزا جمع آوری کرده ام و این راهنما را برای ظریف ترین رویکردهای پیاده سازی شده در ساده ترین کد نوشته ام. این مقاله به طور مکرر از کتابچه های راهنمای چارلز فو و کلارک وربروژ استفاده می کند. من روش های مختلف ایجاد شبکه های شش ضلعی، رابطه آنها و همچنین رایج ترین الگوریتم ها را شرح خواهم داد. بسیاری از بخشهای این مقاله تعاملی هستند: انتخاب نوع شبکه، نمودارها، کدها و متون مربوطه را تغییر میدهد. (توجه به .: این فقط در مورد اصل صدق می کند، به شما توصیه می کنم آن را مطالعه کنید. در ترجمه، تمام اطلاعات نسخه اصلی حفظ می شود، اما بدون تعامل.).
نمونههای کد موجود در مقاله با شبه کد نوشته شدهاند، بنابراین خواندن و درک آنها برای نوشتن پیادهسازی خودتان آسانتر است.
شش ضلعی های صاف (چپ) و تیز (راست) بالا
شش ضلعی ها 6 وجه دارند. هر صورت با دو شش ضلعی مشترک است. شش ضلعی ها 6 نقطه گوشه دارند. هر نقطه گوشه با سه شش ضلعی مشترک است. می توانید در مقاله من در مورد قطعات مش (مربع، شش ضلعی و مثلث) در مورد مراکز، لبه ها و نقاط گوشه بیشتر بخوانید.
تابع hex_corner (مرکز، اندازه، i): var angle_deg = 60 * i + 30 var angle_rad = PI / 180 * angle_deg return Point(center.x + size * cos(angle_rad)، center.y + size * sin(angle_rad) )
برای پر کردن یک شش ضلعی، باید رئوس چند ضلعی را از hex_corner(…, 0) به hex_corner(…, 5) بدست آورید. برای ترسیم طرح کلی شش ضلعی، باید از این رئوس استفاده کنید و سپس دوباره خط را در hex_corner (…, 0) بکشید.
تفاوت بین این دو جهت این است که x و y با هم عوض می شوند که باعث تغییر زاویه می شود: شش ضلعی های بالای تخت دارای زوایای 0 درجه، 60 درجه، 120 درجه، 180 درجه، 240 درجه، 300 درجه هستند و شش ضلعی های بالای تیز دارای زاویه هستند. 30 درجه، 90 درجه، 150 درجه، 210 درجه، 270 درجه، 330 درجه.
گوشه های شش گوش با بالای صاف و تیز
عرض شش ضلعی عرض = sqrt(3)/2 * ارتفاع است. فاصله افقی بین شش ضلعی های مجاور horiz = عرض .
برخی از بازی ها از پیکسل آرت برای شش ضلعی ها استفاده می کنند که دقیقاً با شش ضلعی های صحیح مطابقت ندارد. فرمول های زاویه و موقعیت که در این بخش توضیح داده شده اند با ابعاد این شش ضلعی ها مطابقت ندارند. بقیه مقاله که الگوریتم های شبکه شش ضلعی را توصیف می کند، حتی اگر شش ضلعی ها کمی کشیده یا فشرده شده باشند، کاربرد دارد.
آرایش افقی "فرد-r"
آرایش افقی "جلو-r"
آرایش عمودی "فرد-q"
آرایش عمودی "جلو-q"
شبکه ای از مکعب ها را بردارید و قطع کردنصفحه مورب در x + y + z = 0 . این ایده عجیبی است، اما به ما کمک می کند تا الگوریتم های شبکه شش ضلعی را ساده کنیم. به طور خاص، ما قادر خواهیم بود از عملیات استاندارد مختصات دکارتی استفاده کنیم: جمع و تفریق مختصات، ضرب و تقسیم بر یک مقدار اسکالر، و همچنین فواصل.
به سه محور اصلی روی شبکه مکعب ها و رابطه آنها با شش محور توجه کنید موربجهت های شبکه شش ضلعی ها محورهای مورب شبکه با جهت اصلی شبکه شش ضلعی مطابقت دارد.
از آنجایی که ما قبلاً الگوریتم هایی برای شبکه های مربع و مکعب داریم، استفاده از مختصات مکعبی به ما امکان می دهد این الگوریتم ها را با شبکه های شش ضلعی تطبیق دهیم. من از این سیستم برای اکثر الگوریتم های مقاله استفاده خواهم کرد. برای استفاده از الگوریتمهایی با سیستم مختصات متفاوت، مختصات مکعبی را تبدیل میکنم، الگوریتم را اجرا میکنم و سپس آنها را دوباره تبدیل میکنم.
یاد بگیرید که مختصات مکعبی چگونه برای شبکه ای از شش ضلعی کار می کنند. هنگام انتخاب شش ضلعی، مختصات مکعبی مربوط به سه محور برجسته می شوند.
سیستم های مختصات مختلفی برای مکعب ها و شش ضلعی ها وجود دارد. در برخی از آنها، شرط با x + y + z = 0 متفاوت است. من فقط یکی از سیستم های متعدد را نشان دادم. شما همچنین می توانید مختصات مکعبی را با x-y، y-z، z-x ایجاد کنید، که مجموعه ای از ویژگی های جالب خود را دارند، اما من در اینجا به آنها نمی پردازم.
اما ممکن است استدلال کنید که نمیخواهید 3 عدد را برای مختصات ذخیره کنید زیرا نمیدانید چگونه یک نقشه را ذخیره کنید.
سیستم های مختصات مکعبی و محوری زیادی وجود دارد. در این راهنما، من همه ترکیب ها را پوشش نمی دهم. من دو متغیر 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
در کد، این دو تابع را می توان به صورت زیر نوشت:
تابع cube_to_hex(h): # var محوری q = h.x var r = h.z بازگشت Hex(q, r) تابع hex_to_cube(h): # مکعب var x = h.q var z = h.r var y = -x-z بازگشت مکعب(x, y ز)
مختصات آفست کمی پیچیده تر است:
جهت های متغیر = [ مکعب(+1، -1، 0)، مکعب(+1، 0، -1)، مکعب(0، +1، -1)، مکعب(-1، +1، 0)، مکعب( -1، 0، +1)، Cube(0، -1، +1) ] تابع cube_direction(جهت): تابع جهت بازگشت cube_neighbor(hex، جهت): return cube_add(hex، cube_direction(جهت))
جهتهای متغیر = [ Hex(+1، 0)، Hex(+1، -1)، Hex(0، -1)، Hex(-1، 0)، Hex(-1، +1)، Hex(0، +1) ] تابع hex_direction(جهت): تابع جهت بازگشت hex_neighbor(hex، جهت): var dir = hex_direction (جهت) return Hex(hex.q + dir.q, hex.r + dir.r)
مانند قبل، جدولی از اعداد برای اضافه کردن به col و row ایجاد می کنیم. با این حال، این بار دو آرایه خواهیم داشت، یکی برای ستون ها/ردیف های فرد و دیگری برای زوج ها. به (1،1) در نقشه شبکه بالا نگاه کنید و متوجه شوید که چگونه ستون و ردیف با حرکت در هر یک از شش جهت تغییر می کنند. حالا بیایید روند را برای (2،2) تکرار کنیم. جداول و کد برای هر یک از چهار نوع شبکه جابجایی متفاوت خواهد بود، در اینجا کد مربوطه برای هر نوع شبکه آورده شده است.
odd-r
جهتهای var = [ [ Hex(+1، 0)، Hex(0، -1)، Hex(-1، -1)، Hex(-1، 0)، Hex(-1، +1)، Hex(0 , +1) ]، [ Hex(+1، 0)، Hex(+1، -1)، Hex(0، -1)، Hex(-1، 0)، Hex(0، +1)، Hex( +1، +1) ] ] تابع offset_neighbor(hex، جهت): var parity = hex.row و 1 var dir = جهت ها بازگشت Hex(hex.col + dir.col، hex.row + dir.row)
حتی-ر
جهتهای var = [ [ Hex(+1، 0)، Hex(+1، -1)، Hex(0، -1)، Hex(-1، 0)، Hex(0، +1)، Hex(+1 , +1) ]، [ Hex(+1، 0)، Hex(0، -1)، Hex(-1، -1)، Hex(-1، 0)، Hex(-1، +1)، Hex (0، +1) ] ] تابع offset_neighbor (هگز، جهت): var parity = hex.row و 1 var dir = جهت ها بازگشت Hex(hex.col + dir.col، hex.row + dir.row)
برای سطرهای زوج (حتی) و فرد (ODD) شبکه بندی کنید
فرد-ق
جهتهای var = [ [ Hex(+1، 0)، Hex(+1، -1)، Hex(0، -1)، Hex(-1، -1)، Hex(-1، 0)، Hex(0 , +1) ]، [ Hex(+1، +1)، Hex(+1، 0)، Hex(0، -1)، Hex(-1، 0)، Hex(-1، +1)، Hex (0، +1) ] ] تابع offset_neighbor(hex، جهت): var parity = hex.col و 1 var dir = جهت ها بازگشت Hex(hex.col + dir.col، hex.row + dir.row)
زوج-q
جهتهای var = [ [ Hex(+1، +1)، Hex(+1، 0)، Hex(0، -1)، Hex(-1، 0)، Hex(-1، +1)، Hex(0 , +1) ]، [ Hex(+1، 0)، Hex(+1، -1)، Hex(0، -1)، Hex(-1، -1)، Hex(-1، 0)، Hex (0، +1) ] ] تابع offset_neighbor(hex، جهت): var parity = hex.col و 1 var dir = جهت ها بازگشت Hex(hex.col + dir.col، hex.row + dir.row)
شبکه برای ستون های زوج (حتی) و فرد (ODD).
قطرهای متغیر = [ مکعب(+2، -1، -1)، مکعب(+1، +1، -2)، مکعب(-1، +2، -1)، مکعب(-2، +1، +1 ), Cube(-1، -1، +2)، Cube(+1، -2، +1) ] تابع cube_diagonal_neighbor(hex، جهت): return cube_add (هگز، مورب)
مانند قبل، میتوانیم با حذف یکی از سه مختصات، این مختصات را به مختصات محوری تبدیل کنیم، یا با محاسبه پیشمحاسبه نتایج، آنها را به مختصات افست تبدیل کنیم.
تابع cube_distance(a, b): return (abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z)) / 2
معادل این نماد این است که بگوییم یکی از سه مختصات باید مجموع دو مختصات دیگر باشد و سپس آن را به عنوان فاصله بدست آوریم. شما می توانید فرم دوبخشی یا فرم حداکثر مقدار را در زیر انتخاب کنید، اما آنها نتیجه یکسانی دارند:
تابع cube_distance(a, b): بازگشت حداکثر (abs(a.x - b.x)، abs(a.y - b.y)، abs(a.z - b.z))
در شکل، حداکثر مقادیر با رنگ مشخص شده است. همچنین توجه داشته باشید که هر رنگ یکی از شش جهت "مورب" را نشان می دهد.
gif
تابع hex_distance(a, b): var ac = hex_to_cube(a) var bc = hex_to_cube(b) return cube_distance(ac, bc)
اگر کامپایلر در کیس شما hex_to_cube و cube_distance (داخلی) را جاسازی کند، کدی مانند این تولید میکند:
تابع hex_distance(a, b): return (abs(a.q - b.q) + abs(a.q + a.r - b.q - b.r) + abs(a.r - b.r)) / 2
روش های مختلفی برای نوشتن فاصله بین شش ضلعی ها در مختصات محوری وجود دارد، اما صرف نظر از نحوه نوشتن فاصله بین شش ضلعی ها در سیستم محوری از فاصله منهتن در سیستم مکعبی به دست می آید.. به عنوان مثال، "تفاوت تفاوت ها" توصیف شده با نوشتن a.q + a.r - b.q - b.r به صورت a.q - b.q + a.r - b.r و استفاده از فرم مقدار حداکثر به جای شکل دوقسمت cube_distance به دست می آید. اگر ارتباط با مختصات مکعبی را مشاهده کنید، همه آنها مشابه هستند.
تابع offset_distance(a, b): var ac = offset_to_cube(a) var bc = offset_to_cube(b) return cube_distance(ac, bc)
ما از همین الگو برای بسیاری از الگوریتم ها استفاده خواهیم کرد: تبدیل از شش ضلعی به مکعب، اجرای نسخه مکعبی الگوریتم، و تبدیل نتایج مکعب شده به مختصات شش ضلعی (مختصات محوری یا افست).
gif
تابع lerp(a, b, t): // برای شناورها a + (b - a) برمی گرداند * تابع t cube_lerp(a, b, t): // برای شش ضلعی ها Cube را برمی گرداند(lerp(a.x, b.x, t) lerp(a.y، b.y، t)، lerp(a.z، b.z، t)) تابع cube_linedraw(a، b): var N = cube_distance(a, b) var results = برای هر 0 ≤ i ≤ N: results.append( cube_round(cube_lerp(a, b, 1.0/N * i))) نتایج را برمی گرداند
یادداشت:
ما می توانیم از فرمول فاصله شش ضلعی فاصله = 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: results.append(cube_add(center, Cube(dx , dy, dz)))
این حلقه کار خواهد کرد، اما نسبتا ناکارآمد خواهد بود. از تمام مقادیر dz که در حلقه تکرار میکنیم، فقط یک مورد در واقع شرایط مکعبها dx + dy + dz = 0 را برآورده میکند. در عوض، ما مستقیماً مقدار dz را محاسبه خواهیم کرد که شرط را برآورده می کند:
نتایج var = برای هر -N ≤ dx ≤ N: برای هر max(-N, -dx-N) ≤ dy ≤ min(N, -dx+N): var dz = -dx-dy results.append(cube_add( مرکز، مکعب (dx، dy، dz)))
این حلقه فقط از مختصات مورد نیاز عبور می کند. در شکل، هر محدوده یک جفت خط است. هر خط یک نابرابری است. تمام شش ضلعی هایی را می گیریم که شش نابرابری را برآورده می کنند.
gif
می توان به این مسئله از منظر جبر یا هندسه برخورد کرد. از نظر جبری، هر ناحیه به صورت شرایط نابرابری به شکل -N ≤ dx ≤ N بیان می شود و باید محل تلاقی این شرایط را پیدا کنیم. از نظر هندسی، هر ناحیه یک مکعب در فضای سه بعدی است و ما دو مکعب را در فضای سه بعدی قطع می کنیم تا یک مکعب در فضای سه بعدی به دست آوریم. سپس آن را به صفحه x + y + z = 0 برمی گردانیم تا شش ضلعی ها را بدست آوریم. من این مشکل را به صورت جبری حل می کنم.
ابتدا شرط -N ≤ dx ≤ N را به شکل کلی تر x min ≤ x ≤ x max بازنویسی می کنیم و x min = center.x - N و x max = center.x + N را می گیریم. بیایید همین کار را برای y و z انجام دهیم و در نتیجه یک نمای کلی از کد قسمت قبل به دست میآید:
نتایج Var = برای هر xmin ≤ x ≤ xmax: برای هر max(ymin, -x-zmax) ≤ y ≤ min(ymax, -x-zmin): var z = -x-y results.append(Cube(x, y, ز))
تقاطع دو محدوده 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 min = max (H1.x - N، H2.x - N) و x max = min (H1.x + N، H2.x + N) را به طور مشابه برای y و z . همین الگو برای تقاطع سه یا چند منطقه کار می کند.
gif
تابع cube_reachable(شروع، حرکت): var visited = set() شروع به بازدید شده var fringes = fringes.append() برای هر 1 اضافه کنید< 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
چرخش 60 درجه به راست، هر مختصات را یک موقعیت به راست تغییر می دهد:
[x، y، z] به [-z، -x، -y]
چرخش 60 درجه به چپ، هر مختصات را یک موقعیت به چپ تغییر می دهد:
[x، y، z] به [-y، -z، -x]
در اینجا دنباله کامل چرخش موقعیت P حول موقعیت مرکزی C است که منجر به یک موقعیت جدید R می شود:
تابع cube_ring (مرکز، شعاع): var results = # این کد برای شعاع == 0 کار نمی کند. می فهمی چرا؟ var cube = cube_add(مرکز، مقیاس_مکعب(مکعب_جهت(4)، شعاع)) برای هر 0 ≤ i< 6:
for each 0 ≤ j < radius:
results.append(cube)
cube = cube_neighbor(cube, i)
return results
در این کد، مکعب از حلقه شروع می شود که به صورت یک فلش بزرگ از مرکز به گوشه نمودار نشان داده شده است. من زاویه 4 را برای شروع انتخاب کردم زیرا با مسیری که اعداد جهت من طی می کنند مطابقت دارد. ممکن است به زاویه شروع متفاوتی نیاز داشته باشید. در هر مرحله از حلقه داخلی، مکعب یک شش ضلعی در اطراف حلقه حرکت می کند. پس از 6 * قدم شعاع، او به همان جایی می رسد که شروع کرده بود.
تابع cube_spiral (مرکز، شعاع): نتایج var = برای هر 1 ≤ k ≤ شعاع: نتایج = نتایج + حلقه_مکعب (مرکز، k) نتایج برمیگرداند
پیمایش شش ضلعی ها به این روش می تواند برای محاسبه دامنه حرکت نیز استفاده شود (به بالا مراجعه کنید).
این الگوریتم می تواند در مناطق بزرگ کند باشد، اما پیاده سازی آن آسان است، بنابراین توصیه می کنم با آن شروع کنید.
gif
من می خواهم این راهنما را بیشتر گسترش دهم. من دارم