2011-09-07 44 views
0

假設我有一個5x5的數組。如果我知道以下幾點[1,1] = 40,[1,3] = 50,[3,1] = 60,[3,3] = 70,我該如何計算陣列中的每個未知點?基本上我正在做一個梯度圖的算法,比如地圖上的溫度。計算圖上已知點之間的權重?

感謝

+2

這是一個比編程更多的數學問題,但奇怪的是,在SO上有一個類似的線程:[在3D空間中插入點以形成光滑曲面的簡單方法](http://stackoverflow.com/questions/313297/simple-way-to-interpolate-between-3d-space-to-form-a-smooth-surface) – Groo

+1

首先找到你需要的數學題,然後我們將顯示實現該代碼。我不完全確定'計算數組中未知點'的含義。 –

+0

要添加到上面的評論:假設你物理模擬這種情況,使用不同長度的棍子放在棋盤上。很容易看出,有無限多的曲面符合您的要求 - 首先決定如何選取所需的曲面,然後研究如何計算出中間值,然後*然後*您可以弄清楚如何編寫代碼。 [math.se]可能有幫助。 – AakashM

回答

1

我會鋪陳算法爲你的僞代碼找到任何點P的重量

Find the two point p1 and p2 that are on the "left" and "right" of p 
distance = distance(p1, p2) 
distance_p1 = distance(p, p1) 
weight_diff = p1.weight - p2.weight 
weight_p = p1.weight + (distance_p1/distance) * weight_diff 

讓我知道如果有不清楚的地方。

編輯:這假設點之間的線性插值。