我的行段有start s(x1,y1)和end e(x2,y2)。我通过使用欧氏距离计算了s和e之间的距离
d = sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2))
如何在距离d1(0
答案 0 :(得分:0)
线性的主题是一切都是成比例的。
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
- 也就是说,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
是距起点的距离