ГоловнаСтаттіГенеративне мистецтво та алгоритмічні візерунки

Аполлонівська голка: Заповнення Кожним Відсіком Пересічних Кіль

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

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Три взаємодоторкані кола, одна формула

Враховуючи три кола, які є взаємно дотичними один до одного, скільки кіл є дотичними до всіх трьох? Аполлоній Пергаський поставив це питання у III столітті до н.е. та виявив, що існує закономірно дві розв’язки – одна розташована між цими трьома, а інша охоплює всі три. Декарт відвідав цю проблему в 1643 році і знайшов те, чого не могли побачити давні геометри: суто алгебраїчний зв'язок між кривизнами чотирьох взаємно дотичних кіл (кривизна – це обернена величина радіуса кола, k = 1/r).

жива демонстрація · пов'язана симуляція● LIVE

Теорема Декарта

Для чотирьох взаємно доторкаючихся кіл з кривизнами k1, k2, k3 та k4 (кільце, що оточує інші, вважається від'ємною кривизною, оскільки має протилежний вигин), теорема Декарта визначається так:

(k1 + k2 + k3 + k4)² = 2(k1² + k2² + k3² + k4²)

Розв’язуючи це квадратне рівняння для четвертої кривизни, знаючи три інші, отримуємо практичну формулу побудови, яка використовується для нарощування гальки по одній колі:

k4 = k1 + k2 + k3 ± 2√((k1 * k2) + (k2 * k3) + (k3 * k1))

Знак «±» відповідає двом рішенням Аполлоніуса – невеликому колу, яке щільно вписується у вигнутий трикутний проміжок між трьома, і великому колу, яке б охопило всі три. Щоб заповнити гальку, завжди використовують доданий знак (+), менше коло, що вкріплюється у порожній простір.

(k1 + k2 + k3 + k4)² = 2·(k1² + k2² + k3² + k4²)

Складний теорема Декарта: кола несуть положення, а не лише розмір

Кривизна сама по собі говорить про розмір нової окружності, але не вказує на її центр. Теорема Декарта має розширення з використанням комплексних чисел, виявлене Лагаріасом, Маллоузом та Вілкс, яке відстежує центр безпосередньо: визначте добуток кривизни та центру z = k(центр як комплексне число) для кожної окружності. Тоді z⁴ задовольняє ту саму квадратичну форму, що й кривинні:

z⁴ = z₁ + z₂ + z₃ ± 2√(z₁·z₂ + z₂·z₃ + z₃·z₁) Оскільки ця формула дає як розмір, так і точне положення центру нової окружності в одному кроці, це робить гальку практичним для рендерингу: не потрібне тригонометричне розв'язання умов дотику, лише арифметичні обчислення з комплексними числами, які застосовуються рекурсивно до кожної нової трійки взаємно дотичних кіл, що створює нова окружність.

z4 = z1 + z2 + z3 ± 2·√(z1·z2 + z2·z3 + z3·z1)

Побудова гайки Аполлона рекурсивно

Почніть з трьох взаємодоторканих кіл (або з дегенеративного випадку – двох паралельних ліній та кола, конфігурація з нульовою кривизною, яка також задовольняє теорему). Кожне нове коло, розміщене в проміжку, створює три нових проміжки – один проти кожного з сусідніх його кіл – таким чином побудова є триядерною рекурсивною деревоподібною структурою. На глибині d приблизно 3n нових кіл, і їх кривизни зростають геометрично, тому гайка заповнює внутрішній простір обмежувального кола незліченною кількістю, мінливих за розміром кіл: порожній простір, що залишається, має нульовий об’єм у межі.

Крутизна може бути цілим числом

Цікавий факт: якщо почати з чотирьох взаємно касаючихся кіл, у яких всі крутизності є цілими числами (найпростіший приклад – 0, 0, 1, 1 для двох паралельних ліній та двох кіл радіуса одиниці, або -1, 2, 2, 3 для правильного обмеженого гексадра), то кожне з кіл, що генеруються повторним застосуванням формули Декарта, також матиме цілу крутизність. Це пояснюється тим, що оновлення k4 = 2(k1+k2+k3) - k4_old (яке виводиться з двох коренів одного квадратичного рівняння, які мають спільну суму), є чисто додавальним після усунення квадратного кореня між двома рішеннями – жодних ірраціональних чисел не вводиться. Ці цілі гексадрани пов'язані з теорією чисел: набір усіх крутизнастей, які виникають, залежить лише від залишків по модулю 24 від початкових крутизнастей.

Розмірність фракталу

Гвізд Аполлона є фракталом: при збільшенні будь-якої дірки ви бачите ту саму рекурсивну структуру з тангенціальних кіл на кожному рівні. Її розмірність Гаусдорфа обчислено числово і становить приблизно 1,3057 – між лінією (розмірність 1) та заповненою площею (розмірність 2), що відображає той факт, що залишок порожнього простору, незліченно розбитий на частини, все ще має позитивну, але під-планарну розмірність.

Frequently asked questions

Що означає від'ємна кривизна у формулі Декарта?

Це коло, яке викривлене «неправильним» чином порівняно з іншими – зазвичай великим зовнішнім колом, що оточує всю прокладку. Згідно з угодою, його кривизна записується як від'ємна (k = -1/r), тому однакова додавальна формула k4 = k1+k2+k3 ± 2√(...) працює, незалежно від того, чи є четверте коло маленьким внутрішнім, чи великим обмежувальним.

Чому геліанські конгломерати часто мають цілі кривизни?

Тому що, знаючи кривизну трьох взаємопересічних кіл, два можливі четвертих кривини (внутрішнє та зовнішнє розв’язки однієї квадратичної рівняння) сумуються до 2(k1+k2+k3) – чисто додавальна залежність без квадратного кореня. Починаючи з конфігурації з цілим числом, кожне наступне створене коло успадковує цілу кривизну через цей стиль рекурсії «перестрибки» Вієти.

Чи є геліанський конгломерат справжнім фракталом із самоподібністю?

Так, хоча й не з єдиним фіксованим співвідношенням масштабування, як у трикутнику Сєрпінського – кожен проміжок має різний розмір і форму. Воно статистично самоподібне: на будь-якому масштабi однакова правило заповнення кіл, що торкаються, керує локальній структурі, а його вимір Хаусдорфа (приблизно 1,3057) є добре визначеною фрактальною інваріантною.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Apollonian Gasket і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Apollonian Gasket

Що ви знайшли?

Додати кроки відтворення (опційно)