Nawita na torze
Knot torusowy jest najprostszą rodziną nateczności w matematyce, a jednocześnie jedną z najbardziej widocznie spełniającą oczekiwania: wybierz dwa liczby całkowite p i q, które są względnie pierwsze (gcd(p, q) = 1), obróć pojedynczą zamkniętą krzywą p razy wokół centralnego otworu torusa i q razy przez jego tor, a nateczność zamknie się w prawdziwy knot. Relatywnie pierwsze oznacza, że liczby p i q nie mają wspólnego dzielnika większego niż 1 — jeśli dwie liczby mają wspólny czynnik d, krzywa nie zamknie się w jedno pętlę; zamiast tego rozdzieli się na d osobnych łańcuchów łączących się, tworząc torusowy łańcuch zamiast knotu torusowego.
x(t) = (R + r·cos(qt))·cos(pt) y(t) = (R + r·cos(qt))·sin(pt) z(t) = r·sin(qt) dla t w [0, 2π] R to odległość od centrum torusa do centrum toru, a r to promień torusa. Każdy punkt krzywej pozostaje przylity do powierzchni torusa ze względu na parametryzację — jest ona rzeczywiście „przechodzenie p razy wokół dużego koła i q razy wokół małego koła” — dokładnie taka sama technika jak dla figur Lissajous, tylko przeniesiona z płaszczyzny na torus.
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π]
Trójfałda i jego sąsiedzi
(2, 3) torus knot to trójfałd — najprostszy knut, który nie można rozwiązać bez odcięcia, a pierwsze miejsce w każdym zestawie knutów. (2, 5) knut to piątofałd (knot Solomonowskiego sealu); (3, 4) jest klasycznym „(3,4)-torus knotem”, często rysowanym w podręcznikach topologii z osiemnastoma przecinaniemi. Odwzorowanie p i q prowadzi do tego samego knuta z odwraconej strony obrotu, więc (p, q) i (q, p) są równoważne — tylko krzywa jest parametryzowana inaczej.
Dwie niezmienne opisują, jak skomplikowany jest knut torusowy. Liczba przecięć, minimalna liczba razy, ile krzywa przecina się sama w dowolnym płaskim diagramie, wynosi min(p(q−1), q(p−1)). Genusz — minimalna liczba rąk na orientowalnej powierzchni ograniczającej knut — to (p−1)(q−1)/2. Obejmuje ona się prawie proporcjonalnie z p·q, co wyjaśnia dlaczego wyższe rzędy knutów torusowych o małym promieniu torusa wyglądaą prawie jak solidne przewody skręcone: lina ma tak wiele przecięć w projekcji, że oko czyta je jako teksturę zamiast jednej linii.
Renderyzowanie jako solidny rurka
Krzywa parametryczna nie ma grubości, dlatego renderer tworzy siatkę rurki przenosząc niewielką krzywą przekroju po krzywej za pomocą ramki podobnej do Freneta: dla każdego próbkowania t oblicza się tangens (pochodną krzywej), następnie normalę i binormalną prostopadłe do niego, a następnie umieszcza okrąg wierzchołków wokół tego lokalnego ramka. Sklejanie kolejnych okręgów w kwadraty (dwa trójkąty każdy) daje zamkniętą watertight rurkę. Prosty ramka Freneta może się nieprzewidywalnie skręcać tam, gdzie krzywizna przechodzi przez zero, dlatego kod produkcyjny — w tym włącznie z TubeGeometry three.js, który używa ta symulacja — zamiast tego przekazuje ramkę transportową równoległą po krzywej, przekazywując poprzednią ramkę dalej i tylko obracając ją o tyle, aby pozostawać prostopadła do nowego tangensa. To zapewnia, że przekrój rurki nie odwraca się ani nie skręca, gdy zmieniają się p i q.
Srebrzyste oświetlenie: fresnel, a nie kolor
Zmieniający się, srebrzysty kolor powierzchni wynika z efektu fresnela: odwracalność zależy od kąta między kierunkiem widoku a normalną powierzchni, przy bliskim uderzeniu o powierzchnię odrażana jest prawie cała wchodząca światło, podczas gdy prostopadłe kierunki pozwalają więcej światła przejść, co sprawia, że zagięta torusowa pusta naturalnie biegnie od ciemnej na środku do jasnej przy sile powierzchniowej. Złączenie tego zależnego od kąta wyrazu z barwą cyklującą wzdłuż torusa (podporządkowanym tym samym parametru t używanego do budowy geometrii) tworzy błyszczący, kolorowanie szklanki z mydłem bez jednego obrazka tekstury — to pura geometria i iloczyn skalarny między normalną a wektorem widoku, oceniany na każdym fragmentu w shaderze.
Często zadawane pytania
Dlaczego muszą być p i q względnie pierwsze dla torusowego węzła?
Jeśli p i q mają wspólny czynnik d > 1, krzywa parametryczna nie zamknie się po jednym przebiegu — zwraca się do innej fazy startowej i musi być narysowana d osobnych razy, aby zamknąć się, co powoduje d skreślone pętle (torusowy łącze) zamiast pojedynczej węzlowanej nitki.
Jakie jest najprostsze niebanalne torusowe łoże?
Torusowe łoże (2, 3), lepiej znane jako trójwstronne — trzy krzyżowania, najmniejszy węzeł topologicznie odmienny od nieskrośnego pętli.
Dlaczego powierzchnia wygląda irydescentycznie zamiast płasko w jednym kolorze?
Oświetlenie opiera się na terminie fresnela, który zależy od kąta między normalną powierzchni a położeniem kamery, a nie na ustalonej kolorystyce materiału, więc taka sama nici wygląda ciemno tam, gdzie patrzysz prosto na nią, a jasno, z przekształceniem koloru pod kątem siluety — to samo optyczne efekt, który sprawia, że bąble sztuczne i foliowe błyszczą.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Torus Knot i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację Torus Knot