2010-11-19 48 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曲線,但需要有更多的信息輸入,並且有很多方法可以實現。