有这样一个公式!各位大侠帮我看看!谢谢了

有这样一个公式!各位大侠帮我看看!谢谢了
我在生成的地形时,在三维空间在xy平面上定义了50*50个正方形网格,然后随机生成z轴上51*51个高度值,并经过一定处理.接着画出了这个立体面.
现在我要让整个画面向前移动,我要知道移动到每个网格平面上任意坐(x0,y0)
的高度值z0?

我可以知道这个网格的四个点的坐标(x1.y1,z1),(x2,y2,z2),(x3,y3,z3),(x4,y4,z4)并且在x,y平面上(x0,y0)在网格中以(x1.y1)为坐标原点,在的相对位置tx,ty;
我在一本参考书上看到了这样一个双线性插值公式可以求出这个高度值:
z0= z1(1 - tx -ty +tx*tx)
+ z2(tx -tx*ty)
+ z3(ty -tx*ty)
+ z4(tx*ty)
如果您能看动这个公式,麻烦您给我解释一下其中的道理!
谢谢各位大侠了!
[464 byte] By [liujourney-xinyue] at [2008-2-13]
# 1
移动用插值吗?
hell190109 at 2007-10-26 > top of Msdn China Tech,专题开发,技术,项目,游戏开发...
# 2
不懂你说什么。。。

给张图吧~
# 3
其实很简单,四个点应该是正方形的四个顶点,插值点正方形中一点。
插值点的值由它离各个顶点的距离按线性插值决定。双线性是指x,y方向上分别线性。
为方便起见,设正方形边长为1,定点坐标为 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)
插值点为(i+u,j+v),
公式:
f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)
# 4
两维线性插值.
ttmmdd-老孩子 at 2007-10-26 > top of Msdn China Tech,专题开发,技术,项目,游戏开发...
# 5
就是双线性插值,只不过把式子变形了而已
HUNTON-追求完美 at 2007-10-26 > top of Msdn China Tech,专题开发,技术,项目,游戏开发...