با استفاده از قطب نما یک مربع 6 بسازید. چگونه یک شش ضلعی منظم بسازیم. دایره محصور و امکان ساخت

مبحث چند ضلعی ها در برنامه درسی مدارس مطرح شده است اما توجه کافی به آن ندارند. در همین حال، جالب است، و این به ویژه در مورد شش ضلعی یا شش ضلعی منظم صادق است - از این گذشته، بسیاری از اشیاء طبیعی این شکل را دارند. اینها شامل لانه زنبوری و غیره است. این فرم در عمل بسیار خوب اعمال می شود.

تعریف و ساخت

شش ضلعی منتظم شکل صفحه ای است که دارای شش ضلع مساوی طول و به همان تعداد زاویه مساوی است.

اگر فرمول مجموع زوایای یک چندضلعی را به خاطر بیاوریم

معلوم می شود که در این شکل برابر با 720 درجه است. خوب، از آنجایی که تمام زوایای شکل برابر است، محاسبه اینکه هر یک از آنها برابر با 120 درجه است آسان است.

کشیدن شش ضلعی بسیار ساده است، تنها چیزی که نیاز دارید یک قطب نما و یک خط کش است.

دستورالعمل گام به گام به شکل زیر خواهد بود:

در صورت تمایل، می توانید بدون خط با کشیدن پنج دایره با شعاع مساوی انجام دهید.

شکلی که به این ترتیب به دست می آید یک شش ضلعی منظم خواهد بود و این را می توان در زیر ثابت کرد.

خواص ساده و جالب هستند

برای درک خواص یک شش ضلعی منظم، منطقی است که آن را به شش مثلث تقسیم کنیم:

این در آینده به نمایش واضح تر ویژگی های آن کمک می کند که اصلی ترین آنها عبارتند از:

  1. قطر دایره محصور؛
  2. قطر دایره محاطی؛
  3. مربع؛
  4. محیط

دایره محصور و امکان ساخت

می توان یک دایره را در اطراف یک شش ضلعی توصیف کرد، و علاوه بر این، فقط یک. از آنجایی که این شکل درست است، می توانید آن را به سادگی انجام دهید: یک نیمساز را از دو زاویه مجاور در داخل بکشید. آنها در نقطه 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 درجه خواهد بود. از اینجا می توان نتیجه گیری منطقی گرفت:

  1. ارتفاع ABC از راس B برابر با نصف ضلع شش ضلعی خواهد بود، زیرا sin30°=1/2 است. به کسانی که مایل به تأیید این موضوع هستند می توان توصیه کرد که طبق قضیه فیثاغورث دوباره محاسبه کنند، اینجا کاملاً مطابقت دارد.
  2. ضلع AC برابر با دو شعاع دایره محاطی خواهد بود که دوباره با استفاده از همین قضیه محاسبه می شود. یعنی AC=2(a(√3)/2)=a(√3).
  3. مثلث های ABC، CDE و AEF در دو ضلع و زاویه بین آنها برابر هستند و از این رو برابری اضلاع AC، CE و EA به دست می آید.

مثلث ها که با یکدیگر قطع می شوند، شش ضلعی جدید تشکیل می دهند و همچنین منظم است. اثبات آن آسان است:

بنابراین، این شکل با علائم یک شش ضلعی منظم مطابقت دارد - دارای شش ضلع و زاویه مساوی است. از تساوی مثلث ها در رئوس، به راحتی می توان طول ضلع شش ضلعی جدید را استنتاج کرد:

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 از 3: یک شش ضلعی کامل را با قطب نما بکشید

نقطه 1 را روی دایره علامت گذاری می کنیم و آن را به عنوان یکی از رئوس پنج ضلعی می گیریم. اجازه دهید دایره ای به قطر D داده شود. شما باید یک هفت ضلعی منتظم را در آن حک کنید (شکل 65). قطر عمودی دایره را به هفت قسمت مساوی تقسیم کنید. از نقطه 7 با شعاع برابر با قطر دایره D، کمان را تا زمانی که با ادامه قطر افقی در نقطه F قطع شود توصیف می کنیم. نقطه F را قطب چندضلعی می گویند.

تکنیک ساخت چند ضلعی های منظم بر اساس توانایی ساخت نیمسازهای زاویه و نیمسازهای عمود بر قطعات است.

ستون اول این جدول شامل تعداد اضلاع یک چند ضلعی منظم و ستون دوم شامل ضرایب است. طول یک ضلع از چند ضلعی معین از ضرب شعاع یک دایره معین در ضریب مربوط به تعداد اضلاع این چند ضلعی به دست می آید.

موضوع این فیلم آموزشی «ساخت چند ضلعی منتظم» است. ما همچنین یک بار دیگر تعریف یک چند ضلعی منظم را ارائه می دهیم، آن را به صورت گرافیکی به تصویر می کشیم، پس از آن یک بار دیگر مطمئن خواهیم شد که مراکز دایره های محاط شده و محصور در اطراف چنین شکلی با هم مطابقت دارند. یک دایره همیشه می تواند در این چند ضلعی محاط شود و یک دایره همیشه می تواند دور آن محصور شود. در درس های قبلی متوجه شدیم که نقش اساسی برای توصیف ویژگی های چندضلعی ها توسط نیمسازهای زوایای آن و نیمسازهای عمود بر اضلاع آن ایفا می شود.

4. مثلث منظم مورد نظر ABC را به دست آوردیم. مشکل حل شد. 3. با قرار دادن یک پایه قطب نما در نقطه دلخواه A1 روی دایره، با کمک پایه دوم نقطه A2 را روی همان دایره علامت گذاری می کنیم و آن را با نقطه A1 وصل می کنیم. ضلع اول شش ضلعی را می گیریم. 3. با استفاده از نیمسازهای عمود بر اضلاع چند ضلعی که از نقطه O پایین آمده اند، تمام اضلاع آن و تمام کمان های دایره محصور در بین رئوس مجاور آن را به نصف تقسیم می کنیم.

ساختارهای هندسی یکی از بخش های مهم یادگیری است. سوزن باید خط کشیده شده را سوراخ کند. هرچه قطب نما دقیق تر تنظیم شود، ساختار دقیق تر خواهد بود. یک کمان دیگر بکشید که دایره را قطع می کند. تمام شش نقطه تقاطع کمان ها را با دایره ترسیم شده اولیه به طور پیوسته وصل کنید. در این مورد، شش ضلعی ممکن است اشتباه باشد.

برای به دست آوردن رئوس / - // - /// از نقاط IV، V و VI، خطوط افقی را به محل تقاطع با دایره رسم می کنیم.

رئوس پیدا شده را به صورت سری به یکدیگر وصل می کنیم. هفت ضلعی را می توان با کشیدن پرتوهای قطب 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 نقطه گوشه دارند. هر نقطه گوشه با سه شش ضلعی مشترک است. می توانید در مقاله من در مورد قطعات مش (مربع، شش ضلعی و مثلث) در مورد مراکز، لبه ها و نقاط گوشه بیشتر بخوانید.

گوشه ها

در یک شش ضلعی منظم، زوایای داخلی 120 درجه است. شش "گوه" وجود دارد که هر یک مثلث متساوی الاضلاع با زوایای داخلی 60 درجه است. نقطه گوشه من(60° * i) + 30 درجه، واحد اندازه از مرکز است. در کد:

تابع 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 درجه.


گوشه های شش گوش با بالای صاف و تیز

اندازه و مکان

حالا می خواهیم چندین شش ضلعی را با هم مرتب کنیم. در جهت افقی، ارتفاع شش ضلعی ارتفاع = اندازه * 2 است. فاصله عمودی بین شش ضلعی های مجاور vert = ارتفاع * 3/4 ​​است.

عرض شش ضلعی عرض = sqrt(3)/2 * ارتفاع است. فاصله افقی بین شش ضلعی های مجاور horiz = عرض .

برخی از بازی ها از پیکسل آرت برای شش ضلعی ها استفاده می کنند که دقیقاً با شش ضلعی های صحیح مطابقت ندارد. فرمول های زاویه و موقعیت که در این بخش توضیح داده شده اند با ابعاد این شش ضلعی ها مطابقت ندارند. بقیه مقاله که الگوریتم های شبکه شش ضلعی را توصیف می کند، حتی اگر شش ضلعی ها کمی کشیده یا فشرده شده باشند، کاربرد دارد.



دستگاه های مختصات

بیایید شروع به جمع آوری شش ضلعی ها در یک شبکه کنیم. در مورد شبکه های مربع، تنها یک راه واضح برای جمع آوری وجود دارد. برای شش ضلعی ها، رویکردهای زیادی وجود دارد. من توصیه می کنم از مختصات مکعبی به عنوان نمایش اولیه استفاده کنید. مختصات محوری یا مختصات افست باید برای ذخیره نقشه ها و نمایش مختصات به کاربر استفاده شود.

مختصات افست

متداول ترین روش، جبران هر ستون یا سطر متوالی است. ستون ها با col یا q نشان داده می شوند. ردیف ها با ردیف یا r نشان داده می شوند. شما می توانید ستون ها/ردیف های فرد یا زوج را جبران کنید، بنابراین شش ضلعی های افقی و عمودی هر کدام دو گزینه دارند.


آرایش افقی "فرد-r"


آرایش افقی "جلو-r"


آرایش عمودی "فرد-q"


آرایش عمودی "جلو-q"

مختصات مکعبی

راه دیگر برای نگاه کردن به شبکه های شش ضلعی، دیدن در آنها است سهمحورهای اصلی، نه دو، مانند شبکه های مربع. آنها تقارن ظریف را نشان می دهند.

شبکه ای از مکعب ها را بردارید و قطع کردنصفحه مورب در x + y + z = 0 . این ایده عجیبی است، اما به ما کمک می کند تا الگوریتم های شبکه شش ضلعی را ساده کنیم. به طور خاص، ما قادر خواهیم بود از عملیات استاندارد مختصات دکارتی استفاده کنیم: جمع و تفریق مختصات، ضرب و تقسیم بر یک مقدار اسکالر، و همچنین فواصل.

به سه محور اصلی روی شبکه مکعب ها و رابطه آنها با شش محور توجه کنید موربجهت های شبکه شش ضلعی ها محورهای مورب شبکه با جهت اصلی شبکه شش ضلعی مطابقت دارد.


شش ضلعی


کوبا

از آنجایی که ما قبلاً الگوریتم هایی برای شبکه های مربع و مکعب داریم، استفاده از مختصات مکعبی به ما امکان می دهد این الگوریتم ها را با شبکه های شش ضلعی تطبیق دهیم. من از این سیستم برای اکثر الگوریتم های مقاله استفاده خواهم کرد. برای استفاده از الگوریتم‌هایی با سیستم مختصات متفاوت، مختصات مکعبی را تبدیل می‌کنم، الگوریتم را اجرا می‌کنم و سپس آن‌ها را دوباره تبدیل می‌کنم.

یاد بگیرید که مختصات مکعبی چگونه برای شبکه ای از شش ضلعی کار می کنند. هنگام انتخاب شش ضلعی، مختصات مکعبی مربوط به سه محور برجسته می شوند.

  1. هر جهت از شبکه مکعب مربوط به خطوطروی شبکه ای از شش ضلعی ها سعی کنید یک شش ضلعی با z برابر با 0، 1، 2، 3 انتخاب کنید تا اتصال را ببینید. خط با رنگ آبی مشخص شده است. همین کار را برای 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
در کد، این دو تابع را می توان به صورت زیر نوشت:

تابع 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+ تغییر کنند و دو مختصات باقی مانده می توانند با -1 تغییر کنند. این شش تغییر احتمالی را به ما می دهد. هر کدام مربوط به یکی از جهت های شش ضلعی است. ساده‌ترین و سریع‌ترین راه این است که تغییرات را از پیش محاسبه کنید و آنها را در جدول مکعب (dx, dy, dz) مختصات مکعبی در زمان کامپایل قرار دهید:

جهت های متغیر = [ مکعب(+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(جهت))

مختصات محوری

مانند قبل، برای شروع از سیستم مکعبی استفاده می کنیم. بیایید جدول Cube(dx,dy,dz) را بگیریم و آن را به جدول Hex(dq, dr) تبدیل کنیم:

جهت‌های متغیر = [ 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 تغییر می دهد (مجموع باید 0 باقی بماند).

قطرهای متغیر = [ مکعب(+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 (هگز، مورب)
مانند قبل، می‌توانیم با حذف یکی از سه مختصات، این مختصات را به مختصات محوری تبدیل کنیم، یا با محاسبه پیش‌محاسبه نتایج، آن‌ها را به مختصات افست تبدیل کنیم.


فاصله ها

مختصات مکعبی

در سیستم مختصات مکعبی، هر شش ضلعی یک مکعب در فضای سه بعدی است. شش ضلعی های همسایه در شبکه شش ضلعی 1 و در شبکه مکعبی 2 فاصله دارند. این امر محاسبه فاصله را ساده می کند. در شبکه ای از مربع ها، فواصل منهتن abs(dx) + abs(dy) است. در شبکه ای از مکعب ها، فواصل منهتن abs(dx) + abs(dy) + abs(dz) است. فاصله در شبکه شش ضلعی ها برابر است با نیمی از آنها:

تابع 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)
ما از همین الگو برای بسیاری از الگوریتم ها استفاده خواهیم کرد: تبدیل از شش ضلعی به مکعب، اجرای نسخه مکعبی الگوریتم، و تبدیل نتایج مکعب شده به مختصات شش ضلعی (مختصات محوری یا افست).

خط کشی

چگونه از یک شش ضلعی به دیگری خط بکشیم؟ من از درون یابی خطی برای ترسیم خطوط استفاده می کنم. خط به طور مساوی در نقاط N+1 نمونه برداری می شود و محاسبه می شود که این نمونه ها در کدام شش ضلعی قرار دارند.

gif


  1. ابتدا N را محاسبه می کنیم که فاصله بین نقاط انتهایی به صورت شش ضلعی خواهد بود.
  2. سپس از N+1 نقطه بین نقاط A و B به طور مساوی نمونه برداری می کنیم. با استفاده از درون یابی خطی، تعیین می کنیم که برای مقادیر i از 0 تا N، با احتساب آنها، هر نقطه A + (B - A) * 1.0/N * باشد. من . در شکل، این نقاط کنترل به رنگ آبی نشان داده شده اند. نتیجه مختصات ممیز شناور است.
  3. هر نقطه کنترل (شناور) را به شش ضلعی (int) برگردانید. الگوریتم cube_round نامیده می شود (به زیر مراجعه کنید).
اتصال همه چیز به یکدیگر برای کشیدن یک خط از A به B:

تابع 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))) نتایج را برمی گرداند
یادداشت:

  • مواقعی وجود دارد که cube_lerp نقطه ای را دقیقاً در لبه بین دو شش ضلعی برمی گرداند. سپس cube_round آن را به یک طرف یا آن طرف تغییر می دهد. خطوط اگر در یک جهت جابجا شوند بهتر به نظر می رسند. این کار را می توان با افزودن یک مکعب شش گوش "epsilon" (1e-6، 1e-6، -2e-6) به یک یا هر دو نقطه پایانی قبل از شروع حلقه انجام داد. این خط را در یک جهت "تکان می دهد" تا به مرزهای لبه برخورد نکند.
  • الگوریتم خط DDA در شبکه های مربع، N را با حداکثر فاصله در امتداد هر یک از محورها برابر می کند. ما همین کار را در فضای مکعبی انجام می دهیم، که مشابه فاصله در یک شبکه شش ضلعی است.
  • تابع cube_lerp باید یک مکعب با مختصات شناور برگرداند. اگر به یک زبان تایپ ایستا برنامه نویسی می کنید، نمی توانید از نوع Cube استفاده کنید. به جای آن می‌توانید یک نوع FloatCube تعریف کنید، یا اگر نمی‌خواهید نوع دیگری تعریف کنید، تابع (inline) را در کد ترسیم خط خود به‌صورت درون خطی قرار دهید.
  • می توانید کد را با درون خطی کردن (inline) cube_lerp و سپس محاسبه B.x-A.x، B.x-A.y و 1.0/N در خارج از حلقه بهینه کنید. ضرب را می توان به جمع مکرر تبدیل کرد. نتیجه چیزی شبیه به یک الگوریتم خط DDA است.
  • من از مختصات محوری یا مکعبی برای ترسیم خطوط استفاده می کنم، اما اگر می خواهید با مختصات افست کار کنید، بررسی کنید.
  • گزینه های زیادی برای کشیدن خطوط وجود دارد. گاهی اوقات "پوشش بیش از حد" مورد نیاز است. کد رسم خطوط روکش شده در شش ضلعی برای من ارسال شده است، اما هنوز آن را بررسی نکرده ام.

محدوده سفر

محدوده مختصات

با توجه به مرکز شش ضلعی و محدوده 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: 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


موانع

در صورت وجود موانع، پر کردن با محدودیت فاصله ساده‌تر است (جستجوی اول عرض). در شکل زیر خود را به چهار حرکت محدود می کنیم. در کد، fringes[k] آرایه‌ای از تمام شش ضلعی‌هایی است که می‌توان در k مرحله به آن‌ها رسید. در هر عبور از حلقه اصلی، سطح k-1 را با سطح k گسترش می دهیم.

تابع 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

چرخش

برای یک بردار شش ضلعی معین (تفاوت بین دو شش ضلعی)، ممکن است لازم باشد آن را بچرخانیم تا به شش ضلعی دیگر اشاره کنیم. اگر به چرخش 1/6 پایبند باشید، این کار با مختصات مکعبی آسان است.

چرخش 60 درجه به راست، هر مختصات را یک موقعیت به راست تغییر می دهد:

[x، y، z] به [-z، -x، -y]
چرخش 60 درجه به چپ، هر مختصات را یک موقعیت به چپ تغییر می دهد:

[x، y، z] به [-y، -z، -x]



"بازی" [در مقاله اصلی] با نمودار، می توانید ببینید که هر چرخش 60 درجه تغییر می کندعلامت می دهد و مختصات را به صورت فیزیکی "چرخش" می کند. پس از چرخش 120 درجه، علائم دوباره یکسان هستند. چرخش 180 درجه علائم را معکوس می کند، اما مختصات به موقعیت اصلی خود می چرخند.

در اینجا دنباله کامل چرخش موقعیت P حول موقعیت مرکزی C است که منجر به یک موقعیت جدید 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 = مکعب (R_from_C.x + C.x، R_from_C.y + C.y، R_from_C.z + C.z).
  5. تبدیل موقعیت مکعبی R به سیستم مختصات مورد نظر.
چندین مرحله از تبدیل وجود دارد، اما هر یک از آنها بسیار ساده است. می توان برخی از این مراحل را با تعریف چرخش مستقیم در مختصات محوری کوتاه کرد، اما بردارهای شش ضلعی با مختصات افست کار نمی کنند و من نمی دانم چگونه مراحل مختصات افست را کوتاه کنم. همچنین به بحث در مورد روش های دیگر برای محاسبه چرخش در stackexchange مراجعه کنید.

حلقه

حلقه ساده

برای اینکه بفهمید یک شش ضلعی به حلقه ای با شعاع معین تعلق دارد یا خیر، باید فاصله این شش ضلعی تا مرکز را محاسبه کنید و بفهمید که آیا برابر با شعاع است یا خیر. برای به دست آوردن لیستی از تمام این شش ضلعی ها، باید گام های شعاع از مرکز بردارید، و سپس بردارهای چرخانده شده را در طول مسیر در امتداد حلقه دنبال کنید.

تابع 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) نتایج برمی‌گرداند



مساحت شش ضلعی بزرگ برابر است با مجموع تمام دایره ها به اضافه 1 برای مرکز. از این فرمول برای محاسبه مساحت استفاده کنید.

پیمایش شش ضلعی ها به این روش می تواند برای محاسبه دامنه حرکت نیز استفاده شود (به بالا مراجعه کنید).

منطقه دید

چه چیزی از یک موقعیت مشخص با فاصله مشخص قابل مشاهده است و توسط موانع مسدود نمی شود؟ ساده ترین راه برای تعیین این، کشیدن یک خط به هر شش ضلعی در محدوده داده شده است. اگر خط به دیوارها نرسد، یک شش ضلعی می بینید. ماوس را روی شش ضلعی ها [در نمودار در مقاله اصلی] حرکت دهید تا خطوطی را که به آن شش ضلعی ها کشیده شده اند و دیوارهایی که خطوط به هم می رسند، ببینید.

این الگوریتم می تواند در مناطق بزرگ کند باشد، اما پیاده سازی آن آسان است، بنابراین توصیه می کنم با آن شروع کنید.

gif



تعاریف مختلفی از رویت وجود دارد. آیا می خواهید مرکز یک شش ضلعی دیگر را از مرکز شش ضلعی اولیه ببینید؟ آیا می خواهید قسمتی از شش ضلعی دیگر را از مرکز اصلی ببینید؟ شاید هر بخشی از شش ضلعی دیگر از هر نقطه شروع؟ آیا موانع کمتر از یک شش ضلعی کامل هستند؟ Scope مفهومی پیچیده تر و متنوع تر از آن چیزی است که در نگاه اول به نظر می رسد. بیایید با ساده ترین الگوریتم شروع کنیم، اما انتظار داشته باشید که پاسخ را در پروژه شما به درستی محاسبه کند. حتی مواردی وجود دارد که یک الگوریتم ساده نتایج غیرمنطقی می دهد.

من می خواهم این راهنما را بیشتر گسترش دهم. من دارم



مقالات تصادفی

بالا