Трубопровід для створення сіток Вороного


10

Я хотів би реалізувати плагін Maya (це питання не залежить від Maya), щоб створити 3D-шаблони Voronoi.

введіть тут опис зображення

Я просто знаю, що мені потрібно починати з точкового відбору (я реалізував алгоритм адаптивного відбору пуассона, описаний у цій роботі ).

Я думав, що з цих пунктів я повинен створити 3D-дріт із сітки із застосуванням Voronoi (я намагався використовувати (Python) scipy.spatial.Voronoi, але результат був чимось іншим, ніж я очікував).

Я щось пропускаю? Чи може хтось запропонувати належний конвеєр та алгоритми, які я маю реалізувати для створення таких шаблонів?

[EDIT] Ось декілька прикладів того, що я отримую з результатом, який я отримую від scipy.spatial.Voronoi, як це (як запропоновано тут ):

vor = Voronoi(points)
for vpair in vor.ridge_vertices:
    for i in range(len(vpair) - 1):
        if all(x >= 0 for x in vpair):
            v0 = vor.vertices[vpair[i]]
            v1 = vor.vertices[vpair[i+1]]
            create_line(v0.tolist(), v1.tolist())

Сірі вершини - вибіркові точки (первісна форма була простою сферою): введіть тут опис зображення

Ось більш складна форма (рука) введіть тут опис зображення


Дякую за відповідь Я збираюся повторити те, що я зробив, і розміщу екран, як було запропоновано. У будь-якому разі остаточна мета цього питання полягає не в налагодженні коду, а в тому, щоб зрозуміти, чи правильно те, що я роблю, чи є інші кроки, пропущені між ними!
— Jiloc

додано приклади, як було запропоновано!
— Jiloc

Точки відбору проб Пуассона є правильними. Алгоритм, який їх генерує, перевіряється повністю одиницями, і ті, які ви бачите на екранах, - це сфери з центром у вибірковій точці, який я програматично створив перед викликом Вороного (балів)! Я переживаю, що я не йду правильним шляхом або я неправильно
— поводжу з

Показані вами образи виконали функцію voronoi на функції 2d.
— joojaa

@joojaa Із прикладних зображень я очікував, що краї комірок Вороного на 2D-поверхні - це те, що потрібно (щоб отримати колекцію лінійних сегментів, що з'єднують точки на поверхні сфери, а не колекцію площинних ділянок, які будуть задані в 3D) . Однак, схоже , scipy.spatial.Voronoi, здається, розроблений для N розмірних просторів, а не поверхонь, вкладених у них. Я не можу відразу зрозуміти, як це було б використано для 3D-точок, обмежених 2D-поверхнею.
— трихоплакс

Відповіді:


1

http://www.cs.sandia.gov/~samitch/papers/vor_final.pdf Немає комп’ютерного алгоритму в жодній мові програмування, але ви повинні мати можливість повторити його легко за допомогою деяких відображень на площині та алгоритмів з вище посилання.


Ласкаво просимо на ComputerGraphics.SE! Зазвичай, це гарна ідея складати відповіді на Stack Exchange самостійно (наприклад, у випадку, якщо посилання знижуються, а також загалом, щоб люди не повинні переходити посилання, щоб вони могли сказати, чи відповідь їм корисна). Ви можете покращити свою відповідь, включивши короткий підсумок змісту статті.
— Мартін Ендер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.