如何进行线性插值?
How to do linear interpolation?
我有一条线段,起点为 s(x1,y1),终点为 e(x2,y2)。我已经使用欧氏距离计算了 s 和 e 之间的距离
d = sqrt((x1-x2)(x1-x2) + (y1-y2)(y1-y2))
如何找出距离d1(0 < d1 < d)的线段上的点?
线性的主题是一切都是成比例的。
d1
是 d1/d
从 0
到 d
的一小部分。
因此,您要查找的点 p
与
从 s
到 e
的方式。所以让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时,p
就是e = (x2, y2)
。当 r
从 0
变为 1
时,p
从 s
变为 t
线性——也就是说,作为 [的线性函数=19=].
参数线定义如下:
x(t)=x1+(x2-x1)*t;
y(t)=y1+(y2-y1)*t;
- 其中
t
是 <0.0,1.0>
范围内的参数
- if
t=0.0
则结果为点 (x1,y1)
- if
t=1.0
则结果给出点 (x2,y2)
因此,如果您需要距起点 d 距离的点,则:
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
是到起点的距离
我有一条线段,起点为 s(x1,y1),终点为 e(x2,y2)。我已经使用欧氏距离计算了 s 和 e 之间的距离 d = sqrt((x1-x2)(x1-x2) + (y1-y2)(y1-y2)) 如何找出距离d1(0 < d1 < d)的线段上的点?
线性的主题是一切都是成比例的。
d1
是 d1/d
从 0
到 d
的一小部分。
因此,您要查找的点 p
与
从 s
到 e
的方式。所以让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时,p
就是e = (x2, y2)
。当 r
从 0
变为 1
时,p
从 s
变为 t
线性——也就是说,作为 [的线性函数=19=].
参数线定义如下:
x(t)=x1+(x2-x1)*t;
y(t)=y1+(y2-y1)*t;
- 其中
t
是<0.0,1.0>
范围内的参数
- if
t=0.0
则结果为点 (x1,y1) - if
t=1.0
则结果给出点 (x2,y2)
因此,如果您需要距起点 d 距离的点,则:
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
是到起点的距离