Про цю симуляцію

Торичний вузол (p,q) — це замкнена крива, що обвиває поверхню уявного тора: p разів навколо центральної осі (поздовжньо) і q разів крізь отвір (меридіонально). Якщо gcd(p,q) = 1, результат є справжнім, однокомпонентним вузлом; якщо gcd(p,q) > 1, крива розпадається на стільки ж окремих петель, утворюючи торичне зчеплення. Початкова конфігурація (2,3) — це знаменитий трилисник, найпростіший нетривіальний вузол. У кожному кадрі GLSL-шейдер перераховує освітлення поверхні за допомогою відбиття Фреснеля, косинусної палітри кольорів і легкого терміну оклюзії кільця, щоб кривизна трубки чітко читалася на темному фоні.

🔬 Що показує симуляція

Тривимірну криву торичного вузла (p,q), відрендерену як трубка з GLSL-шейдером у реальному часі. Панель статистики відображає поточні значення p і q та вказує, чи є крива справжнім вузлом (gcd = 1), чи багатокомпонентним зчепленням. Зміна p або q миттєво перебудовує геометрію через Three.js TorusKnotGeometry.

🎮 Як користуватися

Перетягніть повзунок p (1–7), щоб задати поздовжні витки, і повзунок q (1–9) — для меридіональних. Налаштуйте Товщину трубки для товстого або тонкого канату. Оберіть Режим кольору: Райдужний змінює відтінок залежно від кута огляду, Веселка циклічно переходить по спектру вздовж трубки, а Металік надає теплий золото-срібний вигляд. Натисніть Випадковий вузол для переходу до набору пресетів або перетягніть полотно для довільного огляду.

💡 Чи знаєте ви?

Торичні вузли зустрічаються в біології (форма деяких суперспіралей ДНК), фізиці (вихрові трубки в гідродинаміці) та мистецтві. Трилисник (2,3) є хіральним — його дзеркальне відображення неможливо безперервно деформувати назад без розрізання. Вузол (2,5) — це цинкфоліум, а (3,5) використовується в кельтських орнаментах. Будь-який торичний вузол можна параметризувати лише двома взаємно простими цілими числами.

Часті запитання

У чому різниця між торичним вузлом і торичним зчепленням?

Якщо два числа намотування p і q є взаємно простими (gcd(p,q) = 1), крива є єдиною замкненою петлею — справжнім вузлом. Якщо вони мають спільний дільник d = gcd(p,q) > 1, крива розбивається на d окремих переплетених петель, що утворюють торичне зчеплення. Наприклад, (2,4) дає 2-компонентне зчеплення, оскільки gcd(2,4) = 2, тоді як (2,3) — вузол, оскільки gcd(2,3) = 1. Панель статистики відображає поточний тип у реальному часі.

Чому форма так сильно змінюється від переміщення лише одного повзунка?

Топологія та геометрія залежать від p і q разом. Додавання одного додаткового поздовжнього витка (збільшення p на 1) може перетворити трилисник на зовсім інший клас вузла, змінити число перетинів або перевести криву з вузла в зчеплення. Навіть невеликі зміни будь-якого з параметрів кардинально впливають на те, скільки разів трубка перетинає саму себе та як вона вплітається в поверхню тора — форма надзвичайно чутлива до відношення p : q.

Що насправді робить кожен режим кольору в шейдері?

Усі три режими використовують формулу косинусної палітри: колір = a + b·cos(2π·(c·t + d)). Райдужний задає t як суму позиції вздовж трубки, Фреснеля (кута огляду) та часу — відтінки зсуваються при оберті камери. Веселка ігнорує кут огляду і просто циклічно переходить по повному спектру вздовж трубки. Металік використовує коефіцієнти теплої золото-срібної палітри з повільнішою часовою зміною, надаючи вигляду полірованого металу.

Що таке тонування Фреснеля і чому воно робить вузол райдужним?

Відбиття Фреснеля описує, як поверхні відбивають більше світла під ковзними кутами, ніж під прямим. Шейдер апроксимує це формулою Шліка: fresnel = (1 − N·V)^3.5, де N — нормаль до поверхні, а V — напрям погляду. На ковзних кутах (краї трубки) термін Фреснеля близький до 1, підсилюючи як базовий колір, так і крайове підсвічування. У Райдужному режимі фаза палітри також залежить від N·V — тому різні частини поверхні трубки набувають різних відтінків залежно від кута погляду.

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

Так. Трилисник — p=2, q=3 (початкові значення). Цинкфоліум (5 перетинів) — p=2, q=5. Торичний вузол (3,4) (8 перетинів) — p=3, q=4. Торичний вузол (3,5) (10 перетинів) — p=3, q=5. Торичний вузол (2,7) — p=2, q=7. Усі вони доступні зі списку пресетів кнопки «Випадковий вузол», або їх можна задати вручну.