Дзеркала малюють для вас
Реальний акорд, запатентований шотландським фізиком Джозефом Брюстером у 1817 році, – це просто два або три дзеркала, встановлені під кутом всередині трубки, які відбивають розрізнені кольорові фрагменти на далекому кінці. Оскільки дзеркала нахилені, один фрагмент відбивається багаторазово, і ці відбиття утворюють візерунок із обертальною симетрією – поверніть весь малюнок на фіквований кут, і він буде виглядати так само, як і спочатку.
Це моделювання відтворює цю геометрію безпосередньо замість фізичного відбиття світла: малюйте мишкою в одному сектора зі спіркою, і той самий штрих перемальовується, обертається та дзеркально відображається у всіх інших секторах навколо центру. Наприклад, вибір «6-кратної» симетрії ділить коло на шість кутів по 60°; лінія, яку ви намалюєте в одному секторі, копіюється в інші п’ять при тому ж радіусі та з зміщенням на краті 60°, і кожен копій часто дзеркально відображається так, щоб протилежні сектора були відбиттями один одного, а не просто обертаннями.
Математика N-кратної симетрії
Для N-кратної симетрії, кожна точка, яку ви намалюєте під кутом θ та відстані r від центру, копіюється до N-1 додаткових кутів:
для k в діапазоні 0 .. N-1: кут_k = θ + k * (360° / N) графік(r, кут_k) // обертання копії якщо увімкнено_дзеркало: графік(r, -кут_k) // копія відображення в дзеркалі Це точно математика циклічної або діахедральної групи симетрії — та сама класифікація, яку використовують математики для візерунків на шпалерах, сніжинок і розетових віконних конструкцій. Циклічна симетрія (тільки обертання) дає палицеподібні візерунки; діахедральна симетрія (обертання плюс відображення) дає класичний вигляд калейдоскопа, оскільки вона додає вісь відбиття через кожну межу сегменту, подвоюючи ефективну кількість копій для заданого N.
for k in 0 .. N-1:
angle_k = θ + k * (360° / N)
plot(r, angle_k) // rotation copy
if mirror_enabled:
plot(r, -angle_k) // mirrored reflection copy
Чому вищі N виглядають спокійніше, а не переповнено
Одинокий штрих поблизу центру, при низькому N, такому як 3-кратний, створює помітний, розріджений трикутний візерунок, оскільки лише три копії розташовані на великих 120° ділянках. При високому N, наприклад, 12-кратному, той самий штрих створює дванадцять щільно упакованих копій у вузьких 30° ділянках, і око схиляється до злиття їх у гладкий, мереживчастий кільцеподібний візерунок замість того, щоб розрізняти окремі штрихи – чим більше копій упаковано на повний оберт, тим більш дрітним і безперервним виглядає кінцевий текстур, незважаючи на те, що основна правило (копіювання та поворот) ніколи не змінюється.
Frequently asked questions
Як справжній фізичний калейдоскоп створює свій візерунок?
Всередині трубки фіксуються два або три дзеркала під кутом. Світло відбивається між ними багато разів, перш ніж досягти вашого ока, а оскільки дзеркала нахилені частково від 360°, ці відбиття утворюють візерунок із обертальним (і часто дзеркальним) симетрією навколо центру.
Яка різниця між опціями обертання та дзеркального відображення?
Обертання само по собі (циклічна симетрія) копіює ваш малюнок навколо кола на рівних кутових кроках, створюючи візерунки у стилі піщинки. Додавання дзеркального відображення (діахедральна симетрія) також віддзеркалює кожну копію через межу клина, що і створює класичний вигляд калейдоскопа з віссю симетрії, що проходить через кожен сегмент.
Чому більше секторів (наприклад, 12-кратний) виглядають плавніше, ніж менше (наприклад, 3-кратний)?
З більшою кількістю секторів кожен клиновид ширший, тому один малюнок копіюється більше разів у меншому кутовому просторі. Око схиляється до злиття багатьох сусідніх копій у безперервну, мережирну текстуру, тоді як низький кількість секторів залишає великі, візуально відособлені відбиті форми.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Kaleidoscope і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Kaleidoscope