比如一段数组
int nVar[20];里面存放了走势曲线,我要求数组放大到 10 个或者 40 个后,走势数据依然不变的算法。

解决方案 »

  1.   

    线性插值处理, 例如:相邻两个点距离s放大10倍为s10, 根据两点线斜率公式, 可推算出放大后两点(起始和终点)的坐标, 在两点直线中进行等距插值, 满足该两点线斜率公式即可.(x0,y0)为起始点, (x1,y1)为终点
    斜率k = (x1-x0)/(y1-y0)
    放大10倍后, 终点为:(10*x1, 10*y1)每个插值点为:(x1,y1),(x1*2,y1*2),(x1*3,y1*3)...
      

  2.   


    建议一个懒方法:使用 PLUSDC 的插值绘制曲线的方法例如输入20个,将自动插值,变成一条平滑的曲线输出在DC上.呵呵,还可以跟据需要设定要插入多少个点..