首页 文章

如何进行线性插值?

提问于
浏览
0

我的线段有开始s(x1,y1)和结束e(x2,y2) . 我通过使用欧几里德距离来计算s和e之间的距离d = sqrt((x1-x2)(x1-x2)(y1-y2)(y1-y2))如何在距离d1处找到线段上的点( 0 <d1 <d)?

2 回答

  • 0

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

    d1 是从 0dd1/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 时, ps 线性地变为 t - 即,作为 r 的线性函数 .

  • 0

    parametric Line 的定义如下:

    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=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 是距起点的距离

相关问题