2010-11-19 67 views
0

HI如何在视觉基本数组中进行值插值?

如果存在具有特定粗糙度(已知轮廓间隔)的均匀地形,如果已知特定点周围的网格可以如何执行插值?

例如,起始标高为105m,轮廓间隔为0.2m。此外,如果7x7的网格可用(这是VB中的数组,TERR(6,6))。 如果105的位置是在TERR(4,3),那么它周围的其他值应为0.2的值下降,它看起来就像是这样的:

104.2 104.2 104.2 104.2 104.2 104.2 104.2

104.4 104.4 104.4 104.4 104.4 104.4 104.4

104.4 104.6 104.6 104.6 104.6 104.6 104.4

104.4 104.6 104.8 104.8 104.8 104.6 104.4

104.4 104.6 104.8 104.8 105 104.6 104.4

104.4 104.6 104.8 104.8 104.8 104.6 104.4

104.4 104.6 104.6 104.6 104.6 104.6 104.4

数字的阵列中的分布将通过改变起始仰角的位置和阵列的大小而变化(格)。

我发现了很多文章和插值方法(邻域,立方体,双线性等),但没有人足够接近这个问题。

谢谢!

回答

2

这是形状像金字塔,有角。

如果您想使它看起来像一个圆锥体,您可以根据直接距离而不是x或y距离来计算该值。在这个例子中,水平和垂直值(相对于105)将与现在相同。但从TERR(4,3)到TERR(3,2)将是sqrt(1^2 + 1^2)或1.414的“距离”。因此多个0.2由1.414和分配TERR(3,2)的105-0.2828从已知的值 VAL值= 102.7272

DX = x在已知值 DY距离= Y距离=已知的值 DVAL =差TERR(dx,dy)= val + sqrt(dx^2 + dy^2)

这是简单的和线性的。有很多方法可以在点上拟合平滑的3D曲线,但需要有更多的信息输入,并且有很多方法可以实现。