如何进行线性插值?

时间:2015-02-17 11:13:19

标签: math distance linear-interpolation

我的行段有start s(x1,y1)和end e(x2,y2)。我通过使用欧氏距离计算了s和e之间的距离     d = sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2)) 如何在距离d1(0

2 个答案:

答案 0 :(得分:0)

线性的主题是一切都是成比例的

d1距离d1/d0的距离为d

因此,您正在寻找的点p与此相同 从se的方式。所以让r = d1/d。然后

p = (x1 + r*(x2-x1), y1 + r*(y2-y1))

请注意,当r等于0时,p(x1 + 0*(x2-x1), y1 + 0*(y2-y1)) = (x1, y1) = s。当r等于1时,pe = (x2, y2)。当r0变为1时,p线性地从s变为t - 也就是说,r的线性函数{1}}。

答案 1 :(得分:0)

参数化线的定义如下:

x(t)=x1+(x2-x1)*t;
y(t)=y1+(y2-y1)*t;
  • 其中t是范围<0.0,1.0>
  • 中的参数
  • 如果t=0.0则结果是给出点(x1,y1)
  • 如果t=1.0则结果是给出点(x2,y2)

所以,如果你需要从距离开始的距离点,那么:

D=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
x(d)=x1+(x2-x1)*d/D;
y(d)=y1+(y2-y1)*d/D;
  • 其中D是行长
  • d是距起点的距离