一个文本文件里有超过10万行如下的数据点绘制坐标曲线,还要有缩放功能,我直接把数据读到数组里用LineTo绘图,速度很慢,双缓冲也不快,是不是直接用数组影响速度啊,有什么好的算法能提高绘图效率,请高手指教了。
hours               ℃
0.001333            11.80         
0.002833            11.91         
0.004167            12.04         
0.005500            12.16         
0.007000            12.34         
0.008333            12.54         
    

解决方案 »

  1.   

    用opengl,
    全部存储到数组中,
    调用glVertexPointer一次 将所有曲线顶点数据传给opengl
    然后调用一次glDrawArrays(GL_LINES, ...)
      

  2.   

    双缓冲应该可以的,如果用opengl或者d3d就简单了,直接创建一个offscreen,然后就是架设摄像机就可以实现缩放移动之类的。如果不用opengl或者d3d也是一样,要预建立一个memory dc,在 dc中画好,剩下的就是设置视口原点和比例的问题了(可以使用各向同性或者异性)。
      

  3.   

    LineTo时查坐标是不是大于1 pixel, 小于 1 pixel的 不要 LineTo
      

  4.   


    opengl自己有zdepth来控制深度,屏幕重叠的点会自动遮蔽的,不用你单独处理