Початки, що ростуть доти, поки не зійдуться
Розпошіть по руках кілька точкових об'єктів на площині та дозвольте кожному з них розростатись у зовнішньому напрямку з однаковою постійною швидкістю у всіх напрядках. Межі, де стикаються фронти росту сусідніх об’єктів, будуть відтворювати мозаїку випуклих клітин – діаграма Ворнона. Це один із найпростіших геометричних процесів генерації, і майже точно так само, як справді утворюються кристали, коли метал або мінерал затверджується з розплаву.
Математика окремої клітинки
Кожна клітинка Вороної – це множина всіх точок, ближчих до власного насіння, ніж до будь-якого іншого насіння. При звичайній евклідовій відстані межа між двома насінням просто є перпендикуляром до бісектриси лінії, що їх з’єднує, тому одночасне зростання з фіксованого набору насінь дає ідеально прямі стінки клітинки та діаграму, що відповідає математичній сітці Вороної:
cell(i) = { x : dist(x, seed_i) <= dist(x, seed_j) for all j != i } Заміна функції відстані змінює характер мозаїки повністю, незважаючи на те, що насіння та правило росту залишаються тими ж. Евклідова відстань дає прямі бісектриси та звичні опуклі багатокутники. Манхеттенська (таксиметрова, |dx| + |dy|) відстань дає стінки клітинок під кутом 45 градусів, утворюючи діаманподібні клітинки. Чебишевська (макс(|dx|, |dy|)) відстань дає клітинки з квадратними краями. Усі три – це один і той же алгоритм із однією зміненою лінією.
cell(i) = { x : dist(x, seed_i) <= dist(x, seed_j) for all j != i }
Час зародження: прямі проти криволінійних меж
Реальне кристалізація рідко починається з одночасного зародження всіх центрів, і ця часова різниця є тим, що відрізняє простий діаграму Вороної з її більш загальним родичем - укладкою Джонсона-Меля. Якщо всі центри з'являються в момент часу 0 і ростуть з однаковим темпом, межа між двома клітинами визначається лише геометрією і залишається прямою лінією. Якщо центри замість цього зароджуються один за одним протягом часу, ранній центр має перевагу - його передня частина вже розрослася до того, як пізніше з'явився сусід, тому межа між ними більше не є рівномірно віддаленою в просторі; вона є рівномірною за часом прибуття, що виявляється у вигляді криволінійної гіперболоїдної межі, яка схиляється до пізнішого, несприятливого центру.
Рівняння Аврамі: як швидко заповнюється вся площина
Металурги, які вивчали фазові перетворення — наприклад, розплавлення металу або кристалізацію полімеру — потребували способу передбачити, який відсоток матеріалу трансформувався за час t, а не лише кінцеву геометрію. Джонсон, Мелл, Аврамі та Колмогоров незалежно прийшли до того ж результату в 1930-х – 40-х роках, тепер відомий як рівняння ЯМАК або Аврамі:
X(t) = 1 - exp( -K . t^n ) X(t) = частка площі/об’єму, трансформованої за час t K = константа швидкості (швидкість ініціювання x швидкість росту, об’єднана) n = показник Аврамі — кодує режим ініціювання та розмірність Показник n є цікавим числом: для зростання в d вимірах з постійним, безперервним ініціюванням, n = d + 1 (тобто n = 4 для звичайного 3-вимірного затвердіння з безперервним ініціюванням); для насичення місць, де всі ядра з’являються одночасно та лише ростуть після цього, n = d точно (n = 3 у 3D, n = 2 для 2D аркуша). Вимірювання n та K з реальних даних про частку трансформованого матеріалу проти часу t є стандартним способом для матеріалознавців діагностувати, який механізм ініціювання насправді відбувся, повністю на основі однієї кривої.
X(t) = 1 - exp( -K . t^n ) X(t) = fraction of the plane/volume transformed by time t K = a rate constant (nucleation rate x growth rate, combined) n = the Avrami exponent — encodes nucleation mode and dimensionality
Расслабление Ллойда: создание более равномерной мозаики
Диаграмма Вороного, полученная от случайно разбросанных семян, обычно имеет некоторые очень маленькие, тесные ячейки рядом с некоторыми очень большими, простирающимися ячейками — визуально шумные. Алгоритм Ллойда упрощает это с помощью простого итеративного правила: вычислить текущую диаграмму Вороного, переместить каждое семя в центр масс своей собственной ячейки и пересчитать. Повторяя это несколько раз, происходит сходимость к центральной диаграмме Воронового тесселяции, где каждая ячейка центрирована вокруг своего собственного зерна — визуально намного более равномерно, и используется тот же метод расслабления для генерации распределений голубого шума и для сглаживания сетчатых структур в компьютерной графике.
Frequently asked questions
Чому деякі кристалічні візерунки, подібні до Voronoi, мають викривлені межі замість прямих?
Прямі межі з'являються лише тоді, коли всі насіння формуються одночасно і ростуть з однаковою швидкістю — чистий діаграма Voronoi. Якщо насіння з’являється в різний час (безперервне утворення ядер), фронт зростання ранішого насіння отримує перевагу над пізнішим сусідом, тому межа між ними визначається не рівним часом прибуття, а рівною відстанню, що призводить до викривленої межі Johnson-Mehl-style, загнутої в бік пізнішого насіння.
Що саме показує показник Avrami n про матеріал?
Він кодує як розмірність зростання (1-вимірні голки, 2-вимірні диски, 3-вимірні сфери), так і те, чи відбувається утворення ядер одночасно чи безперервно з часом. Підбір n на основі даних про зміни кількості фаз експериментально є стандартним способом зробити висновок, не спостерігаючи безпосередньо мікроструктуру, чи утворювалися кристали або тверді матеріали в один момент, чи продовжувалося утворення нових зерен протягом процесу.
Що насправді робить Lloyd-розслаблення на діаграмі?
Він повторювано переміщує кожне насіння до центру маси клітинки, яку воно зараз контролює, і перераховує візерунок Voronoi, що математично є тим самим правилом оновлення, як і кластеризація k-means. Кожна ітерація зменшує дисперсію розміру та форми клітинок, зводячись до центроїдного Voronoi візерунку, де кожне насіння знаходиться в центрі маси своєї власної клітинки — набагато більш однорідна мозаїка, ніж початковий випадковий розсіювання.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Voronoi Growth і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Voronoi Growth