Крива Гільберта. Побудова кривої Гільберта за допомогою рекурсії

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

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

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

На рисунку що міститься нижче, показані перші три кроки послідовності, що приводять до кривої Гільберта, в тому вигляді, в якому вони були показані в статті 1891 року.

kryva_gilberta17

Перші три криві в послідовності, яка визначає криву Гільберта

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

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

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

Побудова кривої Гільберта — приклад:

Використовуючи розглянуту вище схему, побудувати криву Гільберта другого порядку.

Для цього, на першому кроці, розглянемо фрактал Гільберта першого порядку.

Крива Гільберта першого порядку

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

  1. Малюємо  у напрямку вгору проти годинникової стрілки.
  2. Малюємо відрізок, спрямований вгору.
  3. Малюємо  у напрямку вправо за годинниковою стрілкою.
  4. Малюємо відрізок, спрямований вправо.
  5. Малюємо  у напрямку вправо за годинниковою стрілкою.
  6. Малюємо відрізок, спрямований вниз.
  7. Малюємо  у напрямку вниз проти годинникової стрілки.

kryva_gilberta16

Крива Гільберта другого порядку

Блок-схема алгоритму побудови кривої Гільберта

Фрактал Гільберта блок-схема

Матеріал був корисним, поділись в соціальних мережах:
Якщо тобі сподобалась дана тема, залиш свій коментар