Трізутик Трюшета: Двосторонні дуги
Трізутик – це окремий квадрат, розділений на дві півкругів (або, у вихідній редакції 1704 року, діагональною лінією), з’єднаних у центрі сусідніх сторін. Себастьян Трюшета, французький домініканський ченці та математик, вивчав те, що відбувається, коли таку плитку розміщують на сітці в одній із чотирьох випадково обраних ротацій. Подільно, кожна плитка є тривіальною. Розміщена одна до одної на сітці, дуги сусідніх плиток ідеально вирівнюються – плоскі краї квадрата гарантують це, і візерунок самозбирається в безперервні звивисті шляхи без будь-якого планування.
Основний структурний факт полягає в тому, що плитку Трюшета має обертальну симетрію порядку 2 для варіанту дуги (обертання на 180° дає однакову картинку), але лише одну з чотирьох її 90-градусних ротацій малюється одночасно, тому сітка незалежно рандомізованих плиток має 4ⁿ можливих макетів для n плиток – астрономічно багато, але кожна з них безперешкодно укладається, оскільки точки з’єднання ніколи не залежать від обертання.
Чому шляхи ніколи не застрягають
Кожний край плитки торкається точно одного кінця дуги, а кожен внутрішній край сітки використовується двома плитками. Будь-яка дуга, що виходить з плитки через певний край, зустрічається з дугою, яка входить до наступної плитки через той же край, оскільки дизайн плитки фіксує кінець у середині кожного краю, а не лише деякі з них. Це призводить до того, що дуги можуть закінчуватися лише на межі всієї сітки; всюди всередині вони плавно продовжуються від плитки до плитки, створюючи петлі та вигадливі коридори замість різких тупиків, які б виникли при випадковому розміщенні відокремлених форм.
tile rotation 0: tile rotation 90: .--. . . ( ) ( )( ) . . .--. each edge midpoint carries exactly one arc endpoint → neighbouring tiles always connect, never clash
Від прикраси до обчислень
Своєрідний 1704 рік Трюшета був про декоративні підлогові плитки, і протягом двох з половиною століть це було в основному те, чим воно залишалося — декоративний мотив у паркеті, кераміці та текстильному дизайні. Його друга спроба почалася в 1987 році, коли Саймон Стіл опублікував переприслівник Трюшета з коментарями, які пов'язували їх зі статистичною механікою: випадкове покриття Трюшета поводиться як двовимірний аналог решітки перколяції, а дуги прокладають межі між двома переплетеними наборами областей, подібно до меж доменів у моделі Ізинга.
Структура зв’язності також точно така сама, як і в випадково згенерованому лабіринті. Якщо інтерпретувати дуги кожного елемента як стіни, які блокують або дозволяють рух між квадрантами, то сітка Трюшета є валідним — хоч і дуже викривленим — лабіринтом: кожна клітина доступна з будь-якої іншої за допомогою безперервного коридору, а оскільки дуги ніколи не перетинаються, у лабіринті немає двозначних перетинів.
Варіанти: ширша сім'я Трюшета
Сучасне генеративне мистецтво розширює базову плитку в кілька напрямків, зберігаючи при цьому правило з’єднання вершини-середини. Діагональні плитки Трюшета (пряма лінія по діагоналі замість двох дуг) дають більш блоковий, кутний текстурний ефект. Додавання третього стану – порожньої плитки – вводить контрольовану розрідженість. Неоднозначне розподілення чотирьох поворотів ухиляє візерунок до діагонального зсуву в одному напрямку, створюючи видимий потік замість ізотропного лабіринту. Мультимасштабні варіанти рекурсивно поділяють плитки, а заповнення кольором регіонів, обмежених дугами (замість просто малювання дуг), перетворює ту ж конструкцію на вируючі двоколірні візерунки, які часто зустрічаються в генеративному мистецтві.
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
Realizacja на холстіні
Рендерер — це однопрохідний перегляд по сітці: оберіть розмір комірки, перегляньте рядки та стовпчики, і для кожної комірки виберіть одну з двох орієнтацій пари дуг випадково (чотири повороти зменшуються до двох різних візуальних станів через протилежні кути, які створюють однаковий малюнок). Малюйте кожен як дві півколові арки за допомогою HTML5 canvas arc(), зміщені від верхнього лівого кута комірки. Не потрібна глобальна координація — безшовні з’єднання є геометричною гарантією дизайну плитки, а не те, що алгоритм повинен забезпечувати. Це робить Truchet tilings улюбленим першим проектом у генеративному мистецтві: кілька десятків ліній створюють структуру, яка виглядає як розроблена вручну.
Frequently asked questions
Чи потрібно розміщувати плитки Truchet у певному порядку, щоб вони з'єднувалися?
Ні. Будь-який із чотирьох поворотів може бути встановлений в будь-якій клітинці. Оскільки кожна плитка має рівно один кінець дуги в середині кожного з її чотирьох країв, незалежно від обраного вами повороту, її дуги завжди з'єднуються з дугами сусідніх плиток – безперервне з’єднання гарантовано геометрією плитки, а не плануванням.
Яка різниця між дуговими та діагональними плитками Truchet?
Оригінальний дизайн 1704 року використовував одну діагональну лінію, яка розділяла квадрат на два трикутники з різним відтінком. Зараз більш поширений варіант замінює лінію двома півколовими дугами, що створюють безперервні вигнуті шляхи замість нерівномірних трикутних меж – правило з’єднання на краях однакове незалежно від того, який варіант обрано.
Чи пов'язані Truchet-мазагення з генерацією лабіринтів?
Так. Якщо розглядати дуги кожної плитки як стіни, випадковий Truchet-ґрат має бути валідним лабіринтом: оскільки дуги ніколи не перетинаються і кожен внутрішній край бездоганно з’єднується зі своїм сусідом, будь-яка клітинка залишається доступною з будь-якої іншої клітинки через безперервний вигин коридору.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Truchet Tiles і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Truchet Tiles