Дані значення на сітці, який алгоритм я можу використовувати, щоб ефективно побудувати задані контури?


9

У мене сітка, грані , ребра і вершини , і у мене є список заздалегідь заданих контурів рівня.ЖЕV

Який алгоритм можна використовувати для побудови контурів найбільш ефективно?

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

Діаграма контуру показана вище. Лінії одного кольору мають однакове значення.z


1
Чому потік?
Гравітон

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

Відповіді:


4

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

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


Час виконання для цього є О(Жн), де Ж - номер обличчя і нчи кількість контуру, чи варто вдосконалити час виконання цього алгоритму?
Гравітон

@Graviton: Я не думаю, що можна очікувати на набагато краще, ніж лінійне масштабування з розміром проблеми ...
Allan P. Engsig-Karup
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.