Кіт, що живе на пончіку
Тор — це найпростіша сім’я вузлів у математиці, і водночас одна з найбільш захоплюючих за своєю зовнішністю: оберіть два взаємно прості цілі числа p та q, проведіть один замкнутий ланцюг p разів навколо центрального отвору тора та q разів через трубу, і ланцюг закриється справжнім вузлом. Взаємно прості означає gcd(p, q) = 1 — якщо два цілі числа мають спільний дільник d, крива не замикається в один ланцюг; вона ділиться на d окремих переплетених кіл, тора-ланцюжок, а не вузол тора.
x(t) = (R + r·cos(qt))·cos(pt) y(t) = (R + r·cos(qt))·sin(pt) z(t) = r·sin(qt) для t в [0, 2π] R є відстанню від центру труби до центру тора, r є радіусом труби. Кожна точка кривої залишається приклеєною до поверхні тора, оскільки параметризація насправді «прогулюється навколо великого кола p разів, коли прогулюєтеся навколо малого кола q разів» — це справжня хитромудрість фігури Ліссажу, піднята з плоского простору на пончик.
x(t) = (R + r·cos(qt))·cos(pt) y(t) = (R + r·cos(qt))·sin(pt) z(t) = r·sin(qt) for t in [0, 2π]
Тремпель і його сусіди
Торус (2, 3) є тремпелем — найпростіший вузол, який не можна розв’язати без перерізання, та перший вхід у будь-який таблиці вузлів. Вузол (2, 5) – це цинкуфойл (вузол Соломона); (3, 4) – це класичний «(3,4)-торусний вузол», який часто малюють підручники з топології з восьми перетинів. Зміна p і q відстежує той самий вузол у протилежному напрямку обертання, тому (p, q) та (q, p) є еквівалентними – крива просто параметризується по-різному.
Два інваріанти описують те, наскільки заплутаним є торусний вузол. Кількість перетинів, мінімальна кількість разів, коли крива самоперетинається в будь-якому плоскому діаграмі, дорівнює min(p(q−1), q(p−1)). Генус – мінімальна кількість ручок на орієнтованій поверхні, яку обмежує вузол – дорівнює (p−1)(q−1)/2. Обидва зростають приблизно з p·q, тому високопорядкові торусові вузли з малим радіусом трубки виглядають майже як гумова мотузка, переплетена на собі: струна має багато самоперетинів у проєкції, що змушує око бачити її як текстуру, а не як єдину лінію.
Відображення як тверда труба
Параметрична крива не має товщини, тому рендерер будує трубну сітку шляхом зведення невеликого похилого перерізу вздовж кривої за допомогою фенетового-подібного каркасу: на кожному прикладі t обчислюється касарна (диференціювання кривої), потім нормаль і бінормаль, перпендикулярні до нього, та розміщуються кільця вершин навколо цього місцевого каркасу. З'єднання послідовних кілець у квадри (по дві трикутники кожне) дає закриту водонепроникну трубу. Наївний фенетовий каркас може непередбачувано співати десь, де кривина проходить через нуль, тому код виробництва — включаючи TubeGeometry three.js, який використовує ця симуляція — замість цього поширює паралельно транспортований каркас вздовж кривої, переносячи попередній каркас вперед і лише обертаючи його на ту кількість, необхідну для того, щоб залишатися перпендикулярним до нової касарної. Це запобігає перекиданню або співанню перерізу труби, коли змінюються p та q.
Іридова забарвленість: френель, а не колір
Змінювальний, як олія, відтінок на поверхні є ефектом френеля: відбиття залежить від кута між напрямком спостереження та нормаллю поверхні. При майже паралельних кутах відбивається майже весь падаючий світло, а при кутах, перпендикулярних до поверхні, проходить більше світла. Тому вигнутий трубка природним чином має смугастість від темряви в центрі до яскравості на межі. Поєднання цього огляду-залежного терміну з відтінком, який змінюється вздовж трубки (за допомогою того ж самого параметра t, що використовується для побудови геометрії), створює блискуче, як мило, забарвлення без жодного текстурного зображення — це чиста геометрія та скалярний добуток між нормаллю та вектором напрямку спостереження, оцінений на кожному фрагменті в шейдері.
Frequently asked questions
Чому p і q повинні бути взаємно прості для тороїдального вузла?
Якщо p і q мають спільний дільник d > 1, параметрична крива не замикається після одного оберту — вона повертається до іншої початкової фази і повинна бути простежена d окремих разів для закриття, створюючи d зв'язаних кілець (тороїдальний вузол) замість однієї зав’язаної нитки.
Який найпростіший нетривіальний тороїдальний вузол?
Тороїдальний вузол (2, 3), який краще відомий як трефойл — три перехрестя, найменший вузол, що відрізняється топологічно від незв’язаного кільця.
Чому поверхня виглядає іридованою замість одного кольору?
Затінення використовує френелівський член, заснований на куті між нормаллю поверхні та камерою, а не фіквований колір матеріалу, тому одна трубка виглядає темною, коли ви дивитеся прямо на неї, і яскравою, зміщеною в кольорі під кутами, близькими до контурної лінії — той самий оптичний ефект, який робить піну та плівки з олії блищити.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Torus Knot і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Torus Knot