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


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.