Як накреслити описаний шестикутник. Побудова правильних багатокутників, описаних біля кола. Властивості прості та цікаві

Навчимося зображати шестигранну призму у різних положеннях.

Вивчіть різні способи побудови правильного шестикутника, зробіть малюнки шестикутників, перевірте правильність їхньої побудови. На основі шестикутників побудуйте шестигранні призми.

Розгляньте шестигранну призму на рис. 3.52 та її ортогональні проекції на рис. 3.53. На підставі шестигранної призми (шестигранника) лежать правильні шестикутники, бічні грані – однакові прямокутники. Для того, щоб правильно зобразити шестигранник у перспективі, необхідно спочатку навчитися грамотно зображувати у перспективі його основу (рис. 3.54). У шестикутнику на рис. 3.55 вершини позначені цифрами від одного до шести. Якщо з'єднати точки 1 і 3, 4 і 6 вертикальними прямими, можна помітити, що ці прямі разом з точкою центру кола ділять діаметр 5 - 2 на чотири рівні відрізки (ці відрізки позначені дугами). Протилежні сторони шестикутника паралельні один одному і прямий, що проходить через його центр і з'єднує дві вершини (наприклад, сторони 6 - 1 і 4 - 3 паралельні прямій 5 - 2). Ці спостереження допоможуть вам побудувати шестикутник у перспективі, а також перевірити правильність цієї побудови. Побудувати правильний шестикутник за уявленням можна двома способами: на основі описаного кола та на основі квадрата.

На основі описаного кола. Розгляньте рис. 3.56. Всі вершини правильного шестикутника належать описаному колу, радіус якого дорівнює стороні шестикутника.


Горизонтальний шестикутник. Зобразіть горизонтальний еліпс довільного розкриття, тобто описане коло у перспективі. Тепер потрібно знайти на ній шість точок, що є вершинами шестикутника. Проведіть будь-який діаметр даного кола через його центр (рис. 3.57). Крайні точки діаметра – 5 і 2, що лежать на еліпсі, є вершинами шестикутника. Для знаходження інших вершин необхідно розділити цей діаметр на чотири однакові відрізки. Діаметр вже розділений точкою центру кола на два радіуси, залишається розділити кожен радіус навпіл. На перспективному малюнку всі чотири відрізки поступово скорочуються за віддалення від глядача (рис. 3.58). Тепер проведіть через середини радіусів — точки А і В — прямі, перпендикулярні до прямої 5 — 2. Знайти їх напрямок можна за допомогою дотичних до еліпса в точках 5 і 2 (рис. 3.59). Ці дотичні будуть перпендикулярні діаметру 5 - 2, а прямі, проведені через точки А і В паралельно цим дотичним, будуть також перпендикулярні до прямої 5 - 2. Позначте точки, отримані на перетині цих прямих з еліпсом, як 1, 3, 4, 6 ( 3.60). З'єднайте усі шість вершин прямими лініями (рис. 3.61).

Перевірте правильність вашої побудови різними способами. Якщо побудова вірна, то лінії, що з'єднують протилежні вершини шестикутника, перетинаються в центрі кола (рис. 3.62), а протилежні сторонишестикутники паралельні відповідним діаметрам (рис. 3.63). Ще один спосіб перевірки показано на рис. 3.64.

Вертикальний шестикутник. У такому шестикутнику прямі, що з'єднують точки 7 і 3, б і 4, а також дотичні до описаного кола в точках 5 і 2 мають вертикальний напрямок і зберігають його на перспективному малюнку. Таким чином, провівши дві вертикальні дотичні до еліпсу, знайдемо точки 5 та 2 (точки торкання). З'єднайте їх прямою лінією, а потім розділіть отриманий діаметр 5 - 2 на 4 рівні відрізки, враховуючи їх перспективні скорочення (рис. 3.65). Проведіть вертикальні прямі через точки А і Б, а на їхньому перетині з еліпсом знайдіть точки 1,3,6л4. Потім послідовно з'єднайте точки 1 - 6 прямими (рис. 3.66). Правильність побудови шестикутника перевірте аналогічно до попереднього прикладу.

Описаний спосіб побудови шестикутника дозволяє отримати цю фігуру на основі кола, зобразити яку у перспективі простіше, ніж квадрат заданих пропорцій. Тому цей спосіб побудови шестикутника є найбільш точним та універсальним. Спосіб побудови на основі квадрата дозволяє легко зобразити шестигранник у тому випадку, коли на малюнку вже є куб, тобто, коли пропорції квадрата та напрямок його сторін визначено.

На основі квадрата. Розгляньте рис. 3.67. Вписаний у квадрат шестикутник по горизонтальному напрямку 5 - 2 дорівнює стороні квадрата, а по вертикалі - менше за її довжину.

Вертикальний шестикутник. Намалюйте вертикальний квадрат у перспективі. Проведіть через перетин діагоналей пряму, паралельну його горизонтальним сторонам. Розділіть отриманий відрізок 5 — 2 на чотири рівні частини та проведіть через точки А та В вертикальні прямі (рис. 3.68). Лінії, що обмежують шестикутник зверху та знизу, не збігаються зі сторонами квадрата. Зобразіть їх на певній відстані (1114 а) від горизонтальних сторін квадрата та паралельно їм. З'єднавши знайдені таким чином точки 1 і 3 з точкою 2, а точки 6 і 4 з точкою 5, отримаємо шестикутник (рис. 3.69).

Горизонтальний шестикутник будується у тій самій послідовності (рис. 3.70 та 3.71).

Цей спосіб побудови доречний тільки шестикутників з достатнім розкриттям. Якщо розкриття шестикутника незначне, краще скористатися способом на основі описаного кола. Для перевірки шестикутника, побудованого через квадрат, можна використовувати відомі вам методи.

Крім того, існує ще один — описати навколо отриманого шестикутника коло (на вашому малюнку — еліпс). Усі вершини шестикутника повинні належати цьому еліпсу.

Опанувавши навички зображення шестикутника, ви вільно перейдете до зображення шестигранної призми. Уважно розгляньте схему на рис. 3.72, а також схеми побудови шестигранних призм на основі описаного кола (рис. 3.73; 3.74 та 3.75) та на основі квадрата (рис. 3.76; 3.77 та 3.78). Зобразіть вертикальні та горизонтальні шестигранники у різний спосіб. На малюнку вертикального шестигранника довгі сторони бічних граней будуть паралельними один одному вертикальними прямими, а шестикутник основи тим більше розкритий, чим далі він знаходиться від лінії горизонту. На малюнку горизонтального шестигранника довгі сторони бічних граней сходитимуться у точці сходу на горизонті, а розкриття шестикутника основи буде тим більше, що далі від глядача він знаходиться. Зображуючи шестигранник, слідкуйте також за тим, щоб паралельні грані обох основ сходилися у перспективі (рис. 3.79; 3.80).

Тему багатокутників проходять у шкільній програміале не приділяють їй достатньої уваги. А тим часом вона цікава, і особливо це стосується правильного шестикутника або гексагону – адже цю форму мають багато природних об'єктів. До них відносяться бджолині стільники та багато іншого. Ця форма дуже добре застосовується практично.

Визначення та побудова

Правильним шестикутником називається площинна фігура, що має шість рівних по довжині сторін і стільки ж рівних кутів.

Якщо згадати формулу суми кутів багатокутника

то виходить, що у цій фігурі вона дорівнює 720 °. Ну а оскільки всі кути фігури рівні, неважко порахувати, що кожен із них дорівнює 120°.

Накреслити шестикутник дуже просто, для цього достатньо циркуля та лінійки.

Покрокова інструкція виглядатиме так:

За бажання можна обійтися і без лінії, накресливши п'ять рівних по радіусу кіл.

Отримана таким чином фігура буде правильним шестикутником і це можна довести нижче.

Властивості прості та цікаві

Щоб зрозуміти властивості правильного шестикутника, його має сенс розбити на шість трикутників:

Це допоможе надалі наочніше відобразити його властивості, головні з яких:

  1. діаметр описаного кола;
  2. діаметр вписаного кола;
  3. площа;
  4. периметр.

Описане коло та можливість побудови

Навколо гексагону можна описати коло, і лише одну. Оскільки фігура ця правильна, можна поступити досить просто: від двох сусідніх кутів провести всередину бісектриси. Вони перетнуться в точці О, і утворюють разом із стороною між ними трикутник.

Кути між стороною гексагону та бісектрисами будуть по 60°, тому можна точно сказати, що трикутник, наприклад, АОВ - рівнобедрений. А оскільки третій кут теж дорівнюватиме 60°, то він ще й рівносторонній. Звідси випливає, що відрізки ОА і ОВ рівні, отже, можуть бути радіусом кола.

Після цього можна перейти до наступної сторони, і з кута при точці С також вивести бісектрису. Вийде черговий рівносторонній трикутник, причому сторона АВ буде спільною відразу для двох, а ОС - черговим радіусом, через який йде те ж коло. Усього таких трикутників вийде шість, і в них буде загальна вершина в точці О. Виходить, що описати коло буде можна, і вона всього одна, а її радіус дорівнює стороні гексагону:

Саме тому і можливе побудова цієї фігури за допомогою циркуля та лінійки.

Ну а площа цього кола буде стандартна:

Вписане коло

Центр описаного кола збігається з центром вписаного. Щоб переконатися в цьому, можна провести з точки Про перпендикуляри до сторін шестикутника. Вони будуть висотами тих трикутників, у тому числі складено гексагон. А в рівнобедреному трикутнику висота є медіаною по відношенню до сторони, на яку вона спирається. Таким чином, ця висота не що інше, як серединний перпендикуляр, що є радіусом вписаного кола.

Висота рівностороннього трикутника обчислюється просто:

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

А оскільки R=a та r=h, то виходить, що

r=R(√3)/2.

Таким чином, вписане коло проходить через центри сторін правильного шестикутника.

Її площа становитиме:

S=3πa²/4,

тобто три чверті від описаної.

Периметр та площа

З периметром все ясно, це сума довжин сторін:

P=6а, або P=6R

А ось площа дорівнюватиме сумі всіх шести трикутників, на які можна розбити гексагон. Оскільки площа трикутника обчислюється як половина добутку основи на висоту, то:

S=6(а/2)(а(√3)/2)= 6а²(√3)/4=3а²(√3)/2або

S=3R²(√3)/2

Бажаючим обчислювати цю площу через радіус вписаного кола можна зробити і так:

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

Цікаві побудови

У гексагон можна вписати трикутник, сторони якого будуть з'єднувати вершини через одну:

Усього їх вийде два, і їхнє накладання один на одного дасть зірку Давида. Кожен із цих трикутників - рівносторонній. У цьому неважко переконатись. Якщо подивитися на бік АС, то вона належить одразу двом трикутникам – ВАС та АЕС. Якщо першому їх АВ=ВС, а кут з-поміж них 120°, то кожен із решти буде 30°. Звідси можна зробити закономірні висновки:

  1. Висота АВС з вершини буде дорівнювати половині сторони шестикутника, оскільки sin30°=1/2. Бажаючим переконатися в цьому можна порадити перерахувати за теоремою Піфагора, вона тут підходить якнайкраще.
  2. Сторона АС дорівнюватиме двом радіусам вписаного кола, що знову-таки обчислюється за тією ж теоремою. Тобто АС=2(a(√3)/2)=а(√3).
  3. Трикутники АВС, СДЕ та АЕF рівні по двох сторонах і куті між ними, і звідси випливає рівність сторін АС, РЄ та ЕА.

Перетинаючи один з одним, трикутники утворюють новий гексагон, і він також правильний. Доводиться це просто:

Таким чином, фігура відповідає ознакам правильного шестикутника – у неї шість рівних сторін та кутів. З рівності трикутників при вершинах легко вивести довжину сторони нового гексагону:

d=а(√3)/3

Вона ж буде радіусом описаного навколо нього кола. Радіус вписаної буде вдвічі меншим від сторони великого шестикутника, що було доведено при розгляді трикутника АВС. Його висота становить якраз половину сторони, отже, друга половина - це радіус, вписаний у маленький гексагон кола:

r₂=а/2

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

Виходить, що площа гексагону всередині зірки Давида втричі менша, ніж у великого, який вписана зірка.

Від теорії до практики

Властивості шестикутника дуже активно використовуються як у природі, так і в різних галузях діяльності. Насамперед це стосується болтів і гайок - капелюшки перших і другі є ніщо інше, як правильний шестигранник, якщо не брати до уваги фаски. Розмір гайкових ключів відповідає діаметру вписаного кола - тобто відстані між протилежними гранями.

Знайшла своє застосування та гексагональна плитка. Вона поширена куди менше чотирикутної, але класти її зручніше: в одній точці замикаються три плитки, а не чотири. Композиції можуть бути дуже цікаві:

Випускається бетонна плитка для мощення.

Поширеність гексагону у природі пояснюється просто. Таким чином, найпростіше щільно вмістити кола та кулі на площині, якщо у них однаковий діаметр. Через це у бджолиних стільників така форма.

Сітки шестикутників (гексагональні сітки) використовуються в деяких іграх, але вони не такі прості і поширені, як сітки прямокутників. Я колекціоную ресурси про сітки шестикутників вже майже 20 років, і написав цей посібник з найелегантніших підходів, що реалізуються в найпростішому коді. У статті часто використовуються керівництва Чарльза Фу (Charles Fu) та Кларка Вербрюгге (Clark Verbrugge). Я опишу різні способи створення мереж шестикутників, їх взаємозв'язок, а також найзагальніші алгоритми. Багато частин цієї статті інтерактивні: вибір типу сітки змінює відповідні схеми, код та тексти. (Прим. пер.: це стосується лише оригіналу, раджу його вивчити. У перекладі вся інформація оригіналу збережена, але без інтерактивності.).

Приклади коду в статті написані псевдокодом, так їх легко читати і розуміти, щоб написати свою реалізацію.

Геометрія

Шестикутники – це шестигранні багатокутники. У правильних шестикутників усі сторони (грані) мають однакову довжину. Ми будемо працювати лише з правильними шестикутниками. Зазвичай у сітках шестикутників використовуються горизонтальна (з гострим верхом) та вертикальна (з плоским верхом) орієнтації.


Шестикутники з плоским (ліворуч) та гострим (праворуч) верхом

У шестикутників по 6 граней. Кожна грань є загальною для двох шестикутників. У шестикутників по 6 кутових точок. Кожна кутова точка загальна для трьох шестикутників. Докладніше про центри, грані та кутові точки можна прочитати в моїй статті про частини сіток (квадрати, шестикутники і трикутники).

Кути

У правильному шестикутнику внутрішні кути дорівнюють 120°. Є шість «клинів», кожен із яких є рівностороннім трикутником із внутрішніми кутами 60°. Кутова точка iзнаходиться на відстані (60° * i) + 30°, на size одиниць від центру center. У коді:

Function hex_corner(center, size, 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 °.


Кути шестикутників з плоским та гострим верхом

Розмір та розташування

Тепер ми хочемо розмістити кілька шестикутників разом. У горизонтальній орієнтації висота шестикутника height=size*2. Вертикальна відстань між сусідніми шестикутниками vert=height*3/4.

Ширина шестикутника width = sqrt (3) / 2 * height. Горизонтальна відстань між сусідніми шестикутниками horiz=width.

У деяких іграх для шестикутників використовується піксель-арт, який не відповідає правильним шестикутникам. Формули кутів і розташувань, описані в цьому розділі, не співпадатимуть із розмірами таких шестикутників. Решта статті, що описує алгоритми сіток шестикутників, застосовна навіть якщо шестикутники трохи розтягнуті чи стиснуті.



Системи координат

Давайте приступимо до складання шестикутників у сітку. У разі сіток квадратів існує лише один очевидний спосіб збирання. Для шестикутників є безліч підходів. Я рекомендую використовувати як первинне уявлення кубічні координати. Осьові координати або координати зсувів слід використовувати для зберігання карток та відображення координат для користувача.

Координати зміщень

Найчастіший підхід - усунення кожного наступного стовпця чи рядка. Стовпці позначаються col або q. Рядки позначаються row або 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
У коді ці дві функції можуть бути записані таким чином:

Function cube_to_hex(h): # осьова var q = hx var r = hz return , z)
Координати усунення зовсім трохи складніше:

Сусідні шестикутники

Дано один шестикутник, з якими шістьма шестикутниками він знаходиться поруч? Як і очікується, найлегше дати відповідь у кубічних координатах, досить просто в осьових координатах, і трохи складніше в координатах зміщення. Також може знадобитися розрахувати шість діагональних шестикутників.

Кубічні координати

Переміщення на один простір у координатах шестикутників призводить до зміни однієї з трьох кубічних координат на +1 та іншою на -1 (сума повинна залишатися рівною 0). На +1 можуть змінюватися три можливі координати, а на -1 - дві. Це дає нам шість можливих змін. Кожне відповідає одному з напрямків шестикутника. Найпростіший і найшвидший спосіб - попередньо обчислити зміни та помістити їх у таблицю кубічних координат Cube(dx, dy, dz) під час компіляції:

Var directions = [ Cube(+1, -1, 0), Cube(+1, 0, -1), Cube(0, +1, -1), Cube(-1, +1, 0), Cube( -1, 0, +1), Cube(0, -1, +1) ] function cube_direction(direction): return directions function

Осьові координати

Як і раніше, ми використовуємо спочатку кубічну систему. Візьмемо таблицю Cube(dx, dy, dz) і перетворимо на таблицю Hex(dq, dr):

Var directions = [ Hex(+1, 0), Hex(+1, -1), Hex(0, -1), Hex(-1, 0), Hex(-1, +1), Hex(0, +1) ] функція hex_direction(direction): return directions function hex_neighbor(hex, direction): var dir = hex_direction(direction) return Hex(hex.q + dir.q, hex.r + dir.r)

Координати зміщення

В осьових координатах ми вносимо зміни залежно від того, де сітки знаходимося. Якщо ми в стовпці/рядку усунення, то правило відрізняється від випадку стовпця/рядка без усунення.

Як і раніше, ми створюємо таблицю чисел, які слід додати до col and row . Однак цього разу у нас буде два масиви, один для непарних стовпців/рядків, а інший – для парних. Подивіться на (1,1) на малюнку карти сітки вище та зауважте, як змінюються col і row змінюються при переміщенні в кожному із шести напрямків. Тепер повторимо процес для (2,2). Таблиці та код будуть різними для кожного з чотирьох типівсіток зсувів, наводимо відповідний код для кожного типу сітки.

Нечет-r
var directions = [ [ 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) ] ] function offset_neighbor(hex, direction): var parity = hex.row & 1 var dir = directions return Hex(hex.col + dir.col, hex.row + dir.row)


Чет-r
var directions = [ [ 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) ] ] function offset_neighbor(hex, direction): var parity = hex.row & 1 var dir = directions return Hex(hex.col + dir.col, hex.row + dir.row)


Сітка для парної (EVEN) та непарної (ODD) рядків

Нечет-q
var directions = [ [ 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) ] ] function offset_neighbor(hex, direction): var parity = hex.col & 1 var dir = directions return Hex(hex.col + dir.col, hex.row + dir.row)


Чет-q
var directions = [ [ 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) ] ] function offset_neighbor(hex, direction): var parity = hex.col & 1 var dir = directions return Hex(hex.col + dir.col, hex.row + dir.row)


Сітка для парного (EVEN) та непарного (ODD) стовпців

Діагоналі

Переміщення в діагональному просторі в координатах шестикутників змінює одну з трьох кубічних координат на ±2 і дві інші на ∓1 (сума повинна залишатися рівною 0).

Var diagonals = Cube(+2, -1, -1), Cube(+1, +1, -2), Cube(-1, +2, -1), Cube(-2, +1, +1 ), Cube(-1, -1, +2), Cube(+1, -2, +1) ] function cube_diagonal_neighbor(hex, direction): return cube_add(hex, diagonals)
Як і раніше, ми можемо перетворити ці координати на осьові, відкинувши одну з трьох координат, або перетворити на координати усунення, попередньо обчисливши результати.


відстані

Кубічні координати

У кубічній системі координат кожен шестикутник є кубом у тривимірному просторі. Сусідні шестикутники знаходяться у сітці шестикутників на відстані 1 один від одного, але на відстані 2 у сітці кубів. Це робить розрахунок відстаней простим. У сітці квадратів манхеттенські відстані рівні abs(dx) + abs(dy). У сітці кубів манхеттенські відстані рівні abs(dx) + abs(dy) + abs(dz). Відстань у сітці шестикутників дорівнює їх половині:

Function cube_distance(a, b): return (abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z)) / 2
Еквівалентом цього запису буде вираз того, що одна з трьох координат має бути сумою двох інших, а потім отримання її як відстань. Можна вибрати форму поділу навпіл або форму максимального значення, наведену нижче, але вони дають однаковий результат:

Function cube_distance(a, b): return max(abs(a.x - b.x), abs(a.y - b.y), abs(a.z - b.z))
На малюнку максимальні значення виділено кольором. Зауважте також, що кожен колір позначає один із шести «діагональних» напрямків.

GIF


Осьові координати

В осьовий системі третя координата виражена неявно. Давайте перетворимо з осьової в кубічну систему для розрахунку відстані:

Function hex_distance(a, b): var ac = hex_to_cube(a) var bc = hex_to_cube(b) return cube_distance(ac, bc)
Якщо компілятор у вашому випадку вбудовує (inline) hex_to_cube і cube_distance , він згенерує такий код:

Function 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 . Усі вони аналогічні, якщо побачити зв'язок із кубічними координатами.

Координати зміщення

Як і у випадку з осьовими координатами, ми перетворюємо координати зміщення на кубічні координати, а потім використовуємо відстань кубічної системи.

Function 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 * i . На малюнку ці контрольні точки показані синім. В результаті виходять координати з плаваючою комою.
  3. Перетворимо кожну контрольну точку (float) у шестикутники (int). Алгоритм називається cube_round (див. нижче).
З'єднуємо все разом для малювання лінії від A до B:

Function lerp(a, b, t): // для float return a + (b - a) * t function cube_lerp(a, b, t): // для шестикутників return Cube(lerp(ax, bx, t), lerp(ay, by, t), lerp(az, bz, t)) function cube_linedraw(a, b): var N = cube_distance(a, b) var results = for each 0 ≤ i ≤ N: results.append( cube_round(cube_lerp(a, b, 1.0/N * i))) return results
Примітки:

  • Бувають випадки, коли cube_lerp повертає точку, що знаходиться точно на межі між двома шестикутниками. Потім cube_round зрушує їх у той чи інший бік. Лінії виглядають кращими, якщо їх зсувають в одному напрямку. Це можна зробити, додавши «епсілон»-шестикутний Cube(1e-6, 1e-6, -2e-6) до однієї або обох кінцевих точок перед початком циклу. Це підштовхне лінію в одному напрямку, щоб вона не потрапляла на межі граней.
  • Алгоритм DDA-лінії у сітках квадратів прирівнює N до максимуму відстані по кожній осі. Ми робимо те саме в кубічному просторі, що аналогічно відстані в сітці шестикутників.
  • Функція cube_lerp повинна повертати куб з координатами у float. Якщо ви програмуєте мовою зі статичною типізацією, не зможете використовувати тип Cube . Замість нього можна визначити тип FloatCube або вбудувати (inline) функцію код відображення ліній, якщо ви не хочете визначати ще один тип.
  • Можна оптимізувати код, вбудувавши (inline) cube_lerp , а потім розрахувавши B.x-A.x, B.x-A.y та 1.0/N за межами циклу. Множення можна перетворити на повторюване підсумовування. В результаті вийде щось на зразок алгоритму DDA-лінії.
  • Для відображення ліній я використовую осьові або кубічні координати, але якщо ви хочете працювати з координатами зміщення, вивчіть .
  • Існує багато варіантів відображення ліній. Іноді потрібно «надпокриття». Мені надіслали код відмальовування ліній із надпокриттям у шестикутниках, але я поки що не вивчав його.

Діапазон переміщення

Діапазон координат

Для заданого центру шестикутника та діапазону N які шестикутники знаходяться в межах N кроків від нього?

Ми можемо виконати зворотну роботу з формули відстані між шестикутниками distance = 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 results = for each -N ≤ dx ≤ N: for each -N ≤ dy ≤ N: for each -N ≤ dz ≤ N: if dx + dy + dz = 0: results.append(cube_add(center, Cube(dx) , dy, dz)))
Цей цикл спрацює, але буде досить неефективним. З усіх значень dz, які ми перебираємо в циклі, тільки одне справді задовольняє умову кубів dx+dy+dz=0. Натомість ми безпосередньо обчислимо значення dz , що задовольняє умові:

Var results = for each -N ≤ dx ≤ N: for each max(-N, -dx-N) ≤ dy ≤ min(N, -dx+N): var dz = -dx-dy results.append(cube_add( center, Cube(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 results = for each xmin ≤ x ≤ xmax: for each max(ymin, -x-zmax) ≤ y ≤ min(ymax, -x-zmin): var z = -xy results.append(Cube(x, y, 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 and 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-1 до k .

Function cube_reachable(start, movement): var visited = set() add start to visited var fringes = fringes.append() for each 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] to [-z, -x, -y]
Поворот на 60° вліво зсуває кожну координату на одну позицію вліво:

[ x, y, z] to [-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 = Cube (R_from_C.x + C.x, R_from_C.y + C.y, R_from_C.z + C.z).
  5. Перетворення кубічного положення R у потрібну систему координат.
Тут кілька етапів перетворень, але кожен із них досить простий. Можна скоротити деякі з цих етапів, визначивши поворот безпосередньо в осьових координатах, але вектори шестикутників не працюють із координатами зміщення, і я не знаю, як скоротити етапи для координат зміщення. також обговорення інших способів обчислення повороту на stackexchange.

Кільця

Просте кільце

Щоб з'ясувати, чи належить заданий шестикутник до кільця заданого радіусу radius , потрібно обчислити відстань від цього шестикутника до центру, і дізнатися, чи воно radius . Для отримання списку всіх таких шестикутників потрібно зробити radius кроків від центру, а потім слідувати за векторами, що повертаються, по шляху вздовж кільця.

Function cube_ring(center, radius): var results = # цей код не працює для radius == 0; ви знаєте, чому? var cube = cube_add(center, cube_scale(cube_direction(4), radius)) для кожного 0 ≤ i< 6: for each 0 ≤ j < radius: results.append(cube) cube = cube_neighbor(cube, i) return results
У цьому коді cube починається на кільці, показаному великою стрілкою від центру до кута схеми. Я вибрав спочатку кут 4, тому що він відповідає шляху, в якому рухаються мої числа напрямків. Вам може знадобитися інший кут. На кожному етапі внутрішнього циклу cube рухається однією шестикутник по кільцю. Через 6 * radius кроків він завершує там, де почався.


Спіральні кільця

Проходячи по кільцях по спіральному патерну, ми можемо заповнити внутрішні частини кілець:

Function cube_spiral(center, radius): var results = for each 1 ≤ k ≤ radius: results = results + cube_ring(center, k) return results



Площа великого шестикутника дорівнює сумі всіх кіл плюс 1 для центру. Для обчислення площі використовуйте цю формулу.

Обхід шестикутників у такий спосіб також можна використовувати для обчислення діапазону переміщення (див. вище).

Область видимості

Що видно із заданого положення із заданою відстанню, і не перекривається перешкодами? Найпростіший спосіб визначити це – намалювати лінію до кожного шестикутника в заданому діапазоні. Якщо лінія не зустрічається зі стінами, ви бачите шестикутник. Переміщуйте мишу по шестикутниках [на схемі в оригіналі статті], щоб побачити відображення ліній до цих шестикутників та стіни, з якими лінії зустрічаються.

Цей алгоритм може бути повільним на великих площах, але легко реалізувати, тому рекомендую почати з нього.

GIF



Існує багато різних визначень видимості. Чи бажаєте ви бачити центр іншого шестикутника з початкового центру? Чи бажаєте ви бачити будь-яку частину іншого шестикутника з початкового центру? Може, будь-яку частину іншого шестикутника з будь-якої початкової точки? Перешкоди, що заважають погляду менше повного шестикутника? Область видимості - це хитре і різноманітне поняття, ніж здається здавалося б. Почнемо з найпростішого алгоритму, але чекайте, що він обов'язково правильно обчислить відповідь у вашому проекті. Бувають випадки, коли простий алгоритм дає нелогічні результати.

Я хочу надалі розширювати це керівництво. У мене є

Геометричні побудови є одним із основних елементів навчання. Вони формують просторове та логічне мислення, а також дозволяють зрозуміти примітивні та натуральні геометричні обґрунтованості. Побудови виробляються на площині за допомогою циркуля та лінійки. Цими інструментами можна звести велике число геометричних фігур. При цьому багато фігур, що здаються досить важкими, будуються з використанням найпростіших правил. Скажімо, те, як звести правильний шестикутник, можна описати кожного в декількох словах.

Вам знадобиться

  • Циркуль, лінійка, олівець, аркуш паперу.

Інструкція

1. Намалюйте коло. Встановіть деяку відстань між ніжками циркуля. Ця відстань буде радіусом кола. Виберіть радіус таким чином, щоб креслення кола було досить зручним. Окружність повинна повністю поміщатися на аркуші паперу. Занадто велика або дуже маленька відстань між ніжками циркуля може призвести до його зміни під час креслення. Оптимальною буде відстань, при якій кут між ніжками циркуля дорівнює 15-30 градусів.

2. Побудуйте точки вершин кутів вірного шестикутника. Встановіть ніжку циркуля, в якій закріплена голка, у будь-яку точку кола. Голка має проткнути накреслену лінію. Чим вірніше буде встановлений циркуль, тим вірніше буде побудова. Проведіть дугу кола так, щоб вона перетнула накреслене раніше коло. Переставте голку циркуля в точку перетину щойно накресленої дуги з колом. Накресліть ще одну дугу, що перетинає коло. Знову переставте голку циркуля в точку перетину дуги та кола і знову накресліть дугу. Здійсніть цю дію ще тричі, переміщаючись в одному напрямку по колу. Кожного має вийти шість дуг та шість точок перетину.

3. Побудуйте позитивний шестикутник. Ступінчасто об'єднайте всі шість точок перетину дуг з спочатку накресленим колом. З'єднуйте точки прямими, що викреслюються за допомогою лінійки та олівця. Пізніше проведених процесів буде отримано правильний шестикутник, вписаний в окружність.

Шестикутникомвважається багатокутник, який володіє шістьма кутами та шістьма сторонами. Багатокутники бувають як опуклими, і увігнутими. У опуклого шестикутника всі внутрішні кути тупі, у увігнутого один чи більше кут є гострим. Шестикутник досить легко звести. Це робиться за кілька кроків.

Вам знадобиться

  • Олівець, аркуш паперу, лінійка

Інструкція

1. Береться аркуш паперу і на ньому відзначається 6 точок приблизно так, як показано на рис. 1.

2. Після того, як були помічені точки, береться лінійка, олівець і за їх допомогою ступінчасто, один за одним з'єднуються точки так, як це виглядає на рис. 2.

Відео на тему

Зверніть увагу!
Сума всіх внутрішніх кутів шестикутника дорівнює 720 градусів.

Шестикутник- Це багатокутник, який володіє шістьма кутами. Для того, щоб накреслити довільний шестикутник, необхідно зробити кожного дві події.

Вам знадобиться

  • Олівець, лінійка, аркуш паперу.

Інструкція

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 – прямий кут). Після цього збільшимо довжину між ніжками циркуля вдвічі, що елементарно. Проводячи коло з центром у точці C з радіусом цієї довжини, виявимо точку перетину кола з іншою прямою. Ця точка і буде точкою A прямо кутного тре кутьника ABC, а кут A дорівнюватиме 30 градусам.

5. Звести кутв 30 градусів можна і за допомогою кола, використовуючи те, що він дорівнює?/6. Зведемо коло з радіусом OB. Розглянемо в теорії тре кутьник, де OA = OB = R – радіус кола, де кут OAB = 30 градусів. Нехай OE – висота цього рівнобедреного тре кутня, а, отже, і його бісектриса та медіана. Тоді кут AOE = 15 градусів, і, за формулою половинного кута, sin(15o) = (sqrt(3)-1)/(2*sqrt(2)). Отже, AE = R*sin(15o). Звідси, AB = 2AE = 2R * sin (15o). Будуючи коло радіусом BA з центром у точці B, виявимо точку перетину A цього кола з початковою. Кут AOB дорівнюватиме 30 градусам.

6. Якщо ми можемо визначати довжину дуг якимось чином, то, відклавши дугу завдовжки?*R/6, ми також отримаємо кут 30 градусів.

Зверніть увагу!
Потрібно пам'ятати, що в 5 пункті ми можемо звести кут лише приблизно, тому що у обчисленнях фігуруватимуть ірраціональні числа.

Шестикутникомназивають окремий випадок полігону – фігури, утвореної більшістю точок площини, обмеженою замкненою полілінією. Позитивний шестикутник (гексагон), у свою чергу, також є окремим випадком – це полігон з шістьма рівними сторонами. рівними кутами. Ця фігура знаменна тим, що довжина всієї її сторін дорівнює радіусу описаної навколо фігури кола.

Вам знадобиться

  • – циркуль;
  • - Лінійка;
  • - олівець;
  • - аркуш паперу.

Інструкція

1. Виберіть довжину сторони шестикутника. Візьміть циркуль і встановіть відстань між кінцем голки, розташованої на одній з його ніжок, і кінцем грифеля, розташованим на іншій ніжці, рівним довжині боку фігури, що викреслюється. Для цього можна користуватися лінійкою або віддати перевагу випадковій відстані, якщо Наразінесуттєвий. Зафіксуйте ніжки циркуля гвинтом, якщо є така можливість.

2. Намалюйте коло за допомогою циркуля. Вибрана відстань між ніжками буде радіусом кола.

3. Розбийте коло крапками на шість рівних частин. Ці точки будуть вершинами кутів шестикутника і відповідно закінченнями відрізків, що представляють його сторони.

4. Ніжку циркуля з голкою встановіть у довільну точку, що знаходиться на лінії окресленого кола. Голка має правильно проткнути лінію. Від точності установки циркуля залежить точність побудов. Окресліть циркулем дугу так, щоб вона перетнула в двох точках коло, накреслене першою.

5. Переставте ніжку циркуля з голкою в одну з точок перетину накресленої дуги з початковим колом. Викресліть ще одну дугу, що також перетинає коло в 2-х точках (одна з них співпаде з точкою попереднього розташування голки циркуля).

6. Подібним чином переставляйте голку циркуля і викреслюйте дуги ще чотири рази. Переміщуйте ніжку циркуля з голкою в одному напрямку по колу (постійно або всупереч годинникової стрілки). Через війну мають бути виявлено шість точок перетину дуг з спочатку побудованої окружностью.

7. Намалюйте позитивний шестикутник. Ступінчасто попарно об'єднайте відрізками отримані на попередньому кроці шість точок. Викреслюйте відрізки за допомогою олівця та лінійки. У результаті буде отримано правильний шестикутник. Після здійснення побудови можна стерти допоміжні елементи (дуги і коло).

Зверніть увагу!
Має сенс вибирати таку відстань між ніжками циркуля, щоб кут між ними дорівнював 15-30 градусів, навпаки при здійсненні побудов ця відстань може легко збитися.

При будівництві або розробці домашніх дизайн-планів часто потрібно звести кут, рівний вже існуючому. На підтримку приходять зразки та шкільні вміння геометрії.

Інструкція

1. Кут утворюють дві прямі, що виходять із однієї точки. Ця точка іменуватиметься вершиною кута, а лінії будуть сторонами кута.

2. Для позначення кутів використовуйте три літери: одна біля вершини, дві сторони. Називають кут, Починаючи з тієї літери, яка стоїть у однієї сторони, далі називають літеру, що стоїть біля вершини, і після цього літеру в іншої сторони. Використовуйте й інші методи позначення кутів, якщо вам комфортніше навпаки. Зрідка називають лише одну літеру, що стоїть біля вершини. А можна позначати кути грецькими літерами, скажімо, α, β, γ.

3. Зустрічаються обстановки, коли потрібно накреслити кут, Щоб він дорівнював вже цьому кутку. Якщо при побудові креслення використовувати транспортир можливості немає, можна обійтися тільки лінійкою і циркулем. Можливий, на прямій, позначеній на кресленні літерами MN, треба звести куту точки К, так, щоб він дорівнював куту В. Тобто з точки K потрібно провести пряму, що утворює з лінією MN кут, Що дорівнює куту В.

4. На початку підмітьте по точці по всій стороні даного кута, скажімо, точки А і С, далі об'єднайте точки С і А прямою лінією. Отримайте тре кутник АВС.

5. Тепер побудуйте на прямий MN такий самий тре кутьник, щоб його вершина В знаходилася на лінії в точці К. Використовуйте правило побудови тре кутника по трьох сторонах. Відкладіть від точки К відрізок KL. Він повинен дорівнювати відрізку ПС. Отримайте точку L.

6. З точки K викресліть коло радіусом рівним відрізку ВА. З L викресліть коло радіусом СА. Отриману точку (Р) перетину 2-х кіл об'єднайте з К. Отримайте тре кутьник КPL, який дорівнює тре кутьнику ABC. Так ви отримаєте кутДо. Він і дорівнювати куту В. Щоб це побудова зробити комфортніше і швидше, від вершини В відкладіть рівні відрізки, застосовуючи один розчин циркуля, не зрушуючи ніжок, опишіть цим же радіусом з точки К коло.

Відео на тему

Зверніть увагу!
Уникайте випадкового метаморфозу відстані між ніжками циркуля. У цьому випадку шестикутник може бути неправильним.

Корисна порада
Має сенс виготовляти побудови за допомогою циркуля з добре заточеним грифелем. Так побудови будуть особливо точні.

Чи є поблизу Вас олівець? Погляньте на його перетин - воно є правильним шестикутником або, як його ще називають, гексагоном. Таку форму має також переріз гайки, поле гексагональних шахів, деяких складних молекул вуглецю (наприклад, графіт), сніжинка, бджолині стільники та інші об'єкти. Чи не здається дивним настільки часте використання природою для своїх творінь конструкцій саме цієї форми? Давайте розглянемо докладніше.

Правильний шестикутник є багатокутником з шістьма однаковими сторонами і рівними кутами. Зі шкільного курсу нам відомо, що він має такі властивості:

  • Довжина його сторін відповідає радіусу описаного кола. З усіх це властивість має лише правильний шестикутник.
  • Кути рівні між собою, і величина кожного становить 120 °.
  • Периметр гексагону можна знайти за формулою Р=6*R, якщо відомий радіус описаного навколо нього кола, або Р=4*√(3)*r, якщо коло вписано. R і r - радіуси описаного та вписаного кола.
  • Площа, яку займає правильний шестикутник, визначається так: S=(3*√(3)*R 2)/2. Якщо радіус невідомий, замість нього підставляємо довжину однієї зі сторін - як відомо, вона відповідає довжині радіуса описаного кола.

У правильного шестикутника є одна цікава особливість, завдяки якій він отримав у природі таке широке поширення, - він здатний заповнити будь-яку поверхню площини без накладень та прогалин. Існує навіть так звана лема Пала, згідно з якою правильний гексагон, сторона якого дорівнює 1/√(3), є універсальною покришкою, тобто може покрити будь-яку множину з діаметром в одну одиницю.

Тепер розглянемо побудову правильного шестикутника. Є кілька способів, найпростіший з яких передбачає використання циркуля, олівця та лінійки. Спочатку малюємо циркулю довільне коло, потім у довільному місці на цьому колі робимо крапку. Не змінюючи розчину циркуля, ставимо вістря в цю точку, відзначаємо на колі наступне насічення, продовжуємо так доти, доки не отримаємо всі 6 точок. Тепер залишається лише з'єднати їх між собою прямими відрізками, і вийде шукана фігура.

Насправді бувають випадки, коли потрібно намалювати шестикутник великого розміру. Наприклад, на дворівневій гіпсокартонній стелі навколо місця кріплення центральної люстри потрібно встановити на нижньому рівні шість невеликих світильників. Циркуль таких розмірів знайти буде дуже складно. Як вчинити у цьому випадку? Як взагалі намалювати велике коло? Дуже просто. Потрібно взяти міцну нитку потрібної довжини та обв'язати один із її кінців навпроти олівця. Тепер залишилося лише знайти помічника, який би притиснув до стелі у потрібній точці другий кінець нитки. Звісно, ​​у разі можливі незначні похибки, але навряд вони взагалі будуть помітні сторонній людині.



Схожі публікації