关于插值和拟合
(出自:https://wenku.baidu.com/view/673980ae580216fc710afd48.html)
在实际中,常常要处理由实验或测量所得到的一些离散数据。插值与拟合方法就是通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的捏合精度。
如果要求这个函数(曲线或曲面)经过所已知的所有的数据点,则称此类问题为插值问题。(不需要函数表达式)
如果不要求近似函数通过所有数据点,而是要求它能较好地反映数据变化规律的近似函数的方法成为数据拟合。(必须有函数表达式)
近似函数不一定(曲线或曲面)通过所有的数据点。
关于曲线的实现
平滑曲线实现效果图:
由于最终的成品为坐标图表,需要经过已知的数据点,所以平滑曲线的实现采用的插值法(此处采用的三次样条插值法)。
本质上,折线和平滑曲线的实现思路基本是一致的,只不过采用了插值方法在原有点的基础上进行了点的补充,进而无限接近平滑。
线条的绘制为 UIBezierPath + CAShapeLayer 来实现。
再此处有一个渐显的动画,结合 CABasicAnimation 指定 strokeEnd 属性来实现。
实现代码:http://download.csdn.net/download/u013410274/10228930
三次样条插值参考博客:https://haoxiang.org/2011/06/cubic-spline-interpolation-curve-fitting/