Как генерировать изолинии (контурные линии) при определенных значениях из нерегулярных данных?

У меня есть массив точек выборки с их координатами (X, Y, Z). Я использую триангуляцию Делоне для создания из них нерегулярной сети, а затем использую линейную интерполяцию для построения горизонталей с фиксированными значениями (например, 90, 95, 100, 105). Проблема в том, что мне нужно, чтобы плавные контурные линии были сгенерированы с помощью другого алгоритма. Я некоторое время искал и обнаружил, что мне нужно использовать что-то вроде кригинга, но я не настолько хорош в математике, чтобы реализовать алгоритм из чисто математических отношений. Также я нигде не могу найти реализацию или объяснение алгоритма. Может ли кто-нибудь помочь мне найти его? Кроме того, я прав с выбранным алгоритмом? Есть ли другой, который может быть проще реализовать? Обратите внимание, что я не забочусь о точности.

https://dl.dropbox.com/u/15926260/ex.png

P.S. Я сделал график в Surfer, показывающий результаты, которые я ищу. Справа — то, что я сделал с помощью триангуляции и линейной интерполяции, а слева — то, что мне нужно построить с использованием другого алгоритма (в Surfer использовался кригинг). Извините за орфографические ошибки, но я не носитель языка.

Благодарю вас!


person ram64    schedule 02.07.2012    source источник
comment
Возможно, вы могли бы выбрать более простой алгоритм сглаживания, например. шлицы.   -  person Kromster    schedule 11.08.2012


Ответы (1)


Вы можете попробовать обычную (взвешенную) триангуляцию Делоне. Во взвешенной триангуляции Делоне площади треугольников более равны. ИМО алгоритм кригинга, по-видимому, также дает более равномерные контуры. Взвешенная триангуляция Делоне также используется для создания более гладких сеток.

person Gigamegs    schedule 27.07.2015