-2

我目前正在研究我的硕士论文,我得到:

  • 用 (x, y, z) 形式给定的 n 个点为我绘制的 Delaunay 三角剖分。

我的任务是使用这个三角测量并在给定的 z 值处制作等高线。通过实施维基百科样条插值,我几乎成功地做到了这一点:https ://en.wikipedia.org/wiki/Spline_interpolation

我的问题是,在实现样条曲线时,我的轮廓线相互交叉,而线性图当然不会交叉。

参数三次样条插值轮廓线

如果您查看屏幕底部,您会看到两条等高线交叉,我没有足够的声望点来表明线性绘图没有。您还可以从点到点看到边缘太圆了。我尝试的是在任何一对点之间插入更多点以沿线制作更多结点,这可以进一步限制它们,但是为了获得不相交的线,样条看起来太像线性绘图,而不是令人满意的眼睛。

我想知道的不是实际的代码实现方式,而是指向方式、读数等的指针。(注意,我将从头开始制作,没有库)。

问题:如何制作一个更高次的多项式函数,它在其线性对应物之外不会弯曲太多。太多了,我的意思是给定的轮廓在 50 米处,它不会穿过 60 米处的轮廓。

非常感谢任何帮助。

4

2 回答 2

1

您可以尝试加权 delaunay 三角剖分。它被定义为欧克里德距离减去权重。

于 2016-05-12T15:24:42.123 回答
-2

几年前,我解决了类似的任务。这是我的一些工作笔记。可能会对你有所帮助。

  1. 参考 XoomCode AcidMaps 插件,在 github: https ://github.com/XoomCode/AcidMaps/tree/master/examples/isolines

这是一个演示: http ://ams.xoomcode.com/flex/index.html 设置,例如,渲染器类型“稀疏”和插值策略为“线性”,然后按“更新”按钮。

  1. 参考 VividSolutions JTS Java 库: http: //www.vividsolutions.com/jts/download.htm

  2. http://mike.teczno.com/notes/curves-through-points.html

  3. http://blog.csdn.net/xsolver/article/details/8913390

于 2016-05-08T14:37:18.103 回答