我怎样才能产生多点线性插值?

How can i produce multi point linear interpolation?

我有一个线性插值法。这是在 (x1,y1) (x2,y2) 和 x0 已知时计算插值。它是计算 y0 值。但是当多点已知时我需要这样做。

我不是在谈论双线性或三线性插值。

对于多点插值,有 3 个选项:

  1. 分段线性插值

    选择2个离你已知坐标最近的点如果你使用参数然后select包含参数范围的点并将参数range/scale更改为插值范围(通常为<0,1>)并插值作为线性插值。

    整数线性 DDA 的示例以及更多在这里:

    • Precise subpixel line drawing algorithm (rasterization algorithm)
  2. 多项式插值

    这不是线性的!!!取所有已知点,从中计算 n-th 次多项式(通过拉格朗日多项式或边缘条件或通过 regression/curve 拟合或其他任何方法)并从参数计算点作为该多项式的函数。通常每个轴有一个多项式,点和/或多项式的次数越多,结果(振荡)越不稳定。

  3. 分段多项式插值

    它是#1,#2的组合(n低以避免振荡)。您需要正确调用点序列来管理段之间的连续性,边缘条件必须考虑到上一个和下一个段...

    • 此处Piecewise interpolation cubic example
    • 此处How to construct own interpolation 3th degree polynomial
    • 此处
    • 此处point call sequence and BEZIER cubic as interpolation cubic

[注释]

SPLINE,BEZIER,... 是近似曲线而不是插值(它们不一定穿过控制点)。有一种方法可以通过重新计算控制点来转换不同类型的曲线。例如看这个:

  • Interpolation cubic vs. Bezier cubic