答案 0 :(得分:4)
作为第一个近似值,您可以承认您的函数在数据点的三角测量中是分段平面的。
可以使用Delaunay三角剖分技术,但在这种情况下,考虑到规则的极坐标排列,我想基于极坐标参数的简单规则可以做到。
插入三角形内部并获得水平部分是一件简单的事情。不幸的是,这会产生一个粗略的近似值,你可能会注意到由于折线的粗糙而产生的伪影。
可能的解决方法是将折线平滑为后处理步骤,例如将它们转换为polyBeziers。
我更喜欢的另一种方法是使用更高阶的插值方法。对于C1连续性,您可以计算给定点处的梯度估计值,并在三角形上拟合二次函数。然后细分子三角形中的三角形,在子顶点处插入函数,并切换到这些子三角形中的平面模型。
答案 1 :(得分:1)
因为它看起来像一个不规则的网格,你应该首先在它周围建立一个网格(例如,来自Voronoi tesellation)。
对于每个三角形,取其顶点的最大和最小高度,并找出该范围内轮廓线的高度(例如,如果您每10个单位绘制轮廓线,并且三角形的高度从11.5开始到34.2,穿过该三角形的轮廓线位于高度20和30处。
然后将三角形内部的高度函数近似为线性函数,找出这些轮廓线的位置并绘制它们。
答案 2 :(得分:0)
轮廓图的数据可以通过行进立方体算法的二维简化生成,其描述为here。在简化中,使用正方形代替立方体,并且使用四个采样值进行插值而不是立方体的八个角。
简化也称为marching squares。