一、线性差值
直接看图
若已知图中两点A(x0,y0),B(x1,y1),和该直线上任意一点P的横坐标x,求P该直线上的一点的纵坐标。
很容易可以得到,根据直线的定理。(y−y0)/(x−x0)=(y1−y0)/(x1−x0);
得:y=(x1−x)/(x1−x0)y0+(x−x0)/(x1−x0)y1;
x1,x0,y1,y0为定值,可将上式变换为:
y(x1−x0)=(x1−x)y0+(x−x0)y1
可以看出P点的值受A,B两点影响,离的越近,影响越大。在公式中表现为离得越近乘的权值越大。
二、双线性差值
理解了线性差值,双线性差值就很容易理解了。
双线性差值可以视作线性差值的升维,也就是说在两个方向分别作线性差值。
以上图为例
P的值可视作P1与P2的线性差值,而P1又可视作A,B的线性差值,P2可视作C,D的线性差值。
P1(x1−x0)=A(x1−x)+B(x−x0);
P2(x1−x0)=C(x1−x)+D(x−x0);
若设a=(x−x0)/(x1−x0);
b=(y−y0)/(y1−y0);
则上式可变为:
P1=A(1−a)+B∗a;
P2=C(1−a)+D∗a;
P可视作P1与P2的线性差值
则:P=P1(1−b)+P2∗b
将P1,P2带入可得
P=A(1−a)(1−b)+B∗a(1−b)+C(1−a)b+D∗a∗b
同样符合距离越近权重越大的原则