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


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.