Я смотрел по интернету и не мог найти идеальный алгоритм для этой конкретной проблемы:
Наш клиент имеет набор точек и данных о весе вместе с каждой точкой, что может быть продемонстрировано этим изображением:
взвешенные точки http://chakrit.net/files/stackoverflow/so_heightmap_points.png
Из чего у нас есть программа ГИС, которая может генерировать "карту высот" или какие-то рельефные данные из этих точек и их весовые значения, но поскольку у нас есть около тысячи точек данных и что они будут меняться со временем, мы хотели бы создать собственные инструменты для автоматического создания этих карт высот.
До сих пор я пытался рассчитать вес каждого пикселя с его расстояния до ближайшей точки данных с помощью Sqrt((x1 - x2) ^ 2 + (y1 - y2) ^ 2)
и применить коэффициент веса и расстояния к цвету точки данных, чтобы получить полученный цвет градиента для этого конкретного пикселя
результат карты высот http://chakrit.net/files/stackoverflow/so_heightmap_result.png
Вы можете видеть, что все еще есть проблемы с определенной конфигурацией точек данных, и алгоритм иногда создает довольно многоугольное изображение, когда имеется много точек данных. Идеальный результат должен больше походить на многоточие и меньше, чем на многоугольник.
Вот один пример изображения из статьи википедии о градиентном восхождении, который демонстрирует результат, который я хочу:
горы http://chakrit.net/files/stackoverflow/so_gradient_descent.png
Алгоритм подъема градиента не представляет для меня интереса. Что меня интересует; является алгоритмом для вычисления исходной функции в этом изображении, в первую очередь, при условии, что точки данных с весами.
Я не принимал ни одного класса в топологической математике, но я могу сделать некоторое исчисление. Я думаю, что, возможно, что-то не хватает, и я довольно потерял то, что я должен ввести в поле поиска Google.
Мне нужны указатели.
Спасибо!