Насчет искользования изолиний без триангуляции далеко не все так просто.
Я это пытался сделать как раз первым вариантом.
Вопрос такой - к примеру хотим сделать самую простую линейную интерполяцию, значит задача состоит в том, чтобы найти ДВЕ ближайших точки с РАЗНЫМИ высотами.
Только область 3 - простой и понятный варинат - находим две ближайших изолнии и интерполируем между ними.
1 - внутри замкнутого контура с одной высотой - вторая высота получится совершенно от другой изолинии, которая не имеет никакого отношения к данной точке.
2 - должен быть плавный переход между интерполяцией под двум точкам к интерполяции по трем, иначе опять таки получим артефакт - плоский участок, а потом излом.
Реально получалось сделать так - сделать дискретную карту высот с некоторым разрешением, записать в нее высоты изолиний, а потом запустить нечто типа волнового алгоритма, т.е. от точек с известной высотой распространяется волна в соседние клетки.
Я делал так что в каждую клетку может быть записано до 4 разных высот, одновременно пишется расстояние до источника волны. Потом интерполируется по найденым высотам с весом обратно пропорциональным расстоянию. В принципе получалось, но при низкой дискретности карты качество было плохим, а при высокой - время вычислений слишком велико.
Добавлено спустя 5 минут 12 секунд:
worm2 писал(а):
Спасибо! Вопрос пока еще не решил, но Ваша ссылка помогла.