Як я можу сконцентрувати точки у зонах вищої кривизни?


11

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

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

Я спеціально розглядаю використання цих точок для триангуляції поверхні, і я не хочу створювати більше трикутників, ніж мені потрібно для відносно рівних частин.


Це буде застосовано до фігур із відомою похідною, тому кривизна в заданій точці може бути обчислена.

Для цього не потрібно підходити в реальному часі.


Ви шукаєте більш точний спосіб вибірки з розподілу, без тесту Монтекарло, я маю на увазі? Якщо ви мало переймаєтесь обчислювальним підходом (тобто ви шукаєте точний підхід, а не обчислювальні зусилля), я міг би мати рішення, але це, звичайно, можна оптимізувати.
користувач8469759,

3
Чи знаєте ви аналітичну функцію чи можете вибирати її лише? Чи знаєте ви його аналітичну похідну?
Жульєн Гурто

@JulienGuertault Чи уточнюється моя редакція?
трихоплакс

@Lukkio Я хотів би спочатку точність, потім оптимізація може пізніше піти, коли підхід працює.
трихоплакс

1
Можливо, ви захочете ознайомитись з методами кінцевих елементів , які також використовують тріангуляцію (або в більш загальному вигляді: симплекси) і часто стикаються з проблемою необхідності більшої щільності вибірки у вибраних регіонах. Вони обов'язково мають розробити для цього алгоритми.
Wrzlprmft

Відповіді:


11

Ідея, яку я б спробував застосувати, полягала б у наступному: я робимо приклад для кривої, але вона повинна бути простою для нанесення на поверхню.

γss

cs|c|C(s)

s0,s1,,sn

Застосування цього методу до випадку поверхні має бути прямим, оскільки в основному у вас є двовимірна функція кумулятивного розподілу, але проблема вибірки точно така ж.

Щоб детальніше розповісти, це в основному вибірка з розподілу, враховуючи сукупну функцію, яка включає два етапи:

  1. [0,1]k

  2. C(s)=k

Цей підхід є точним, звичайно, він дорогий, але якщо вам подобається такий підхід, ви можете працювати над оптимізацією.


1
Підтримки латексу ще немає.
joojaa

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

Будь-які питання, які виграли б від MathJax для формул, можуть бути додані до цього метавідповіді, щоб збільшити наші шанси отримати MathJax. (Цього вже додано.)
трихоплакс

Пам’ятайте, що вам потрібна функція розподілу, похідна від кривизни, ви сказали, що ви можете отримати все (до речі, яку поверхню у вас є, тобто рівняння). У всякому разі ... що ви маєте на увазі під "похідною відомою"? чи знаєте ви чітку формулу похідної? чи це теж неявно? (тобто описується за допомогою диференціального рівняння)?
користувач8469759

1
До речі ... якщо крива / поверхня є алгебричною (я маю на увазі виражений поліном або раціональним персоналом), існують обчислювальні методи, засновані на bspline / nurbs, які пояснюють, як виконати параметризацію таких кривих. Я зазирнув сюди docs.lib.purdue.edu/cgi/… , подальший метод (навіть просунутий) можна було знайти в одній з моїх улюблених книг про Nurbs (книзі NURBS від Тіллера).
користувач8469759

2

Гарною відправною точкою є класичний папір, що використовує частинки для вибірки та контролю неявних поверхонь , опублікований у SIGGRAPH 1994.

Просте моделювання частинок, описане в статті Вибірка неявних об'єктів з фізичними системами частинок ( Computers & Graphics , 1996) для кривих працює також і для поверхонь; див . приклади динамічної текстури для неявних поверхонь .

Для більш пізнього прикладу див. Зображення форми та тону для неявних поверхонь ( Computers & Graphics , 2011).


2

Наступний наївний підхід, ймовірно, не дасть настільки добре розподілених балів, як ті, які надає Lhf , але це має бути набагато простіше у виконанні та обчислювальній техніці :

xyd(x,y)xyxy

A

  1. xd(x,x)

  2. A

  3. A

    1. xyA
    2. zd(x,y)A
    3. zd(x,y)A

      • якщо так, відмовтеся від цього.
      • xzyzzA

A

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.