我在互联网上四处寻找,找不到解决这个特定问题的完美算法:
我们的客户有一组点和重量数据以及每个点,如下图所示:
加权点 http://chakrit.net/files/stackoverflow/so_heightmap_points.png
其中,我们有一个 GIS 程序,可以从这些点及其权重值生成“高度图”或一种地形数据,但由于我们有近一千个数据点并且这些数据会随着时间而变化,我们希望创建我们自己的工具来自动生成这些高度图。
到目前为止,我已经尝试计算每个像素从其到最近数据点的距离的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
梯度上升算法不是我感兴趣的。我感兴趣的东西;是首先计算该图片中的原始函数的算法,提供具有权重的数据点。
我没有上过任何拓扑数学课,但我可以做一些微积分。我想我可能遗漏了一些东西,并且对我应该在那个谷歌搜索框中输入什么感到迷茫。
我需要一些指示。
谢谢!