Kafel z dwiema łukami
Kafel Trucheta to pojedynczy kwadrat podzielony na dwa łuki połowy okręgu (lub, w oryginalnej wersji z 1704 roku, przekątną) łączącego punkty średnich boków sasiednich. Sébastien Truchet, francuski dominikanin i matematyk, badał, co się stanie, gdy takie kafelki są umieszczone na siatce w jednej z czterech rotacji wybranych losowo. Każdy pojedynczy kafel jest prosto. Kiedy kafelki są ułożone obok siebie na siatce, łuki sąsiadujących kafelków pozostają idealnie wyrównane — kwadraty gwarantują to — a wzór samorozszerza się do ciągłych skrętowych ścieżek bez żadnego planowania. Kluczowe fakt strukturalny polega na tym, że kafel Trucheta ma symetrię rotacyjną rzędu 2 dla wariantu z łukami (obrót o 180° daje taką samą obraz), ale tylko jedna z czterech obrót o 90° jest rysowana, więc siatka z niezależnie losowo ustawionymi kafelkami ma 4ⁿ możliwych układów dla n kafelków — astronomicznie wiele, ale każdy z nich tylko się połącza, ponieważ punkty połączenia nigdy nie zależą od rotacji.
Dlaczego ścieżki nigdy nie kończą się abruptnie
Każdy krawędź kafelka jest dotykany dokładnie przez jeden koniec łuku, a każda wewnętrzna krawędź siatki jest dzielona przez dwa kafelki. Niezależnie od tego, który kafelek zostawia łuk przez daną krawędź, natrafi na inny kafelek, który wprowadza łuk przez tę samą krawędź, ponieważ projekt kafelka ustawia punkt końcowy na każdym południu krawędzi, nie tylko na niektórych z nich. Wynikiem jest to, że łuki mogą kończyć się tylko na granicy całościowej siatki; wewnątrz, kontynuuje się oni płynnie z kafelka do kafelka, tworząc pętle i skrętne korytarze zamiast abruptnych ścieżek końcowych, które by uzyskałeś z losowo umieszczonej niezwiązanej figur.
tile rotation 0: tile rotation 90: .--. . . ( ) ( )( ) . . .--. each edge midpoint carries exactly one arc endpoint → neighbouring tiles always connect, never clash
Od dekoracji do obliczeń
Truchet w swoim własnym roku 1704 papierze zajmował się ozdobnymi podłogowymi kafelkami, a przez ponad dwie i pół wieku ten wzór pozostawał mostly dekoracyjny — jako motyw ozdabiający parkiet, ceramikę i projekt przemysłowy. Druga vida wzoru zaczęła się w 1987 roku, gdy Cyril Stanley Smith republikował Trucheta pliki ze uwagami, które łączyły je z mechaniką statystyczną: losowe ozdobienie Trucheta zachowuje się jak dwuwymiarowy analogon siatki przepływu, a łuki rysują brzegi krzywych między dwoma wstawionymi zestawami obszarów, podobnie jak granice dziedzin w modelu Isinga.
Konstrukcja połączeń jest dokładnie taka sama, jaką otrzymujesz z losowego generowania labiryntów. Jeśli interpretujesz łuki każdego kafelka jako ściany blokujące lub pozwalające na przemieszczanie się między kwadrantami, siatka Trucheta jest prawidłowym — jeśli niezwykle krzywym — labiryntem: każda komórka jest dostępna z każdej innej poprzez ciągły korytarz, a ponieważ łuki nigdy się nie przecinają, labirynt nie ma zniekształconych przekładek.
Warianty: szersza rodzina Trucheta
Obecna sztuka generatywna rozszerza podstawowy kafelek w kilku kierunkach, zachowując zawsze regułę połączenia punktów środkowych boków. Kafelki Trucheta przekątniowe (prosta linia skos od kąta do kąta zamiast dwóch łuków) dają bardziej blokowy, ostrożny teksturę. Dodanie trzeciego stanu — pustego kafelka — wprowadza kontrolowaną rzadkość. Nierównomierna waga czterech rotacji skasowuje wzór w stronę przemieszczenia przekątnego w jednym kierunku, tworząc widoczny prąd zamiast isotropowego labiryntu. Warianty wieloskalowe rekurencyjnie poddziedziczą kafelki, a wypełnienie kolorów obszarów ograniczonych łukami (zamiast tylko narysowania łuków) przekształca tę konstrukcję w kręcące się wzory dwutonowe typowe dla sztuki generatywnych.
for each cell (x, y):
rotation = random(0, 90, 180, 270)
draw two quarter-circle arcs, corner pair chosen by rotation
# optional: draw(rotation + 180) too is the same tile — order 2 symmetry
Implementing to rysunku
Renderownik przeprowadza pojedynczy przebieg po siatce: wybiera rozmiar komórki, iteruje po wierszach i kolumnach, a dla każdego komórkowego wyboru jednej z dwóch orientacji par łusek losowo (cztery rotacje zmniejszają się do dwóch różnych stanów widocznego, ponieważ przeciwnie rozmieszczone kąty produkcji tak samo obraz). Narysuje każdy jako dwie łuski połowy okręgu przy użyciu prymitywu arc() z HTML5 canvas, przesunięte o kąt górny lewy komórki. Nie jest potrzebne koordynacja globalna — bezpieczne połączenia są gwarancją geometryczną projektu wzoru, a nie coś, czego algorytm musi zmusić do zachowania. To właśnie sprawia, że wzorcowanie Trucheta jest ulubionym pierwszym projektem w sztuce generatywnej: kilkaset linii tworzy strukturę, która wygląda na ręcznie zaplanowaną.
Często zadawane pytania
Czy kafelki Trucheta muszą być umieszczone w określonym wzorcu do połączenia?
Nie. Każda z czterech rotacji może znaleźć się w dowolnej komórce. Ponieważ każdy kafelek ma dokładnie jedną końcówkę łuku na każdym z czterech punktów połowy krawędzi, wybór rotacji nigdy nie spowoduje, że łuk nie będzie połączony z łukiem sąsiadującego kafelka — bezwzględne połączenie jest gwarantowane przez geometrię kafelka, a nie planowaniem.
Jaka jest różnica między łukowymi a przekątnymi kafelkami Trucheta?
Początkowy projekt z 1704 roku używał pojedynczej przekątnej dzielącej kwadrat na dwa trójkąty o różnych tarczach. Teraz powszechnie popularniejsza wersja zastępuje linię dwiema łukami połowy okręgu, co tworzy ciągłe krzywe ścieżki zamiast ostre trójkątne granice — reguła połączenia na krawędziach jest taka sama w obu przypadkach.
Czy wzory kafelkami Trucheta są związane z generowaniem labiryntów?
Tak. Jeśli traktować łuki każdego kafelka jako ściany, losowy wzór kafelków Trucheta jest prawidłowym labiryntem: ponieważ łuki nigdy się nie przecinają i każda wewnętrzna krawędź połącza się bezwzględnie z sąsiednim łukiem, każdy komórka pozostaje dostępna z każdej innej komórki poprzez ciągły skręcający korytarz.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Truchet Tiles 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ę Truchet Tiles