我在试图中绘制曲线,当曲线上的数据很多时,如有2万个点的数据,因为绘制过程中还需要计算,来确定其在坐标中的位置,这样本来需要绘制的点就多,还加上需要计算定位,重绘速度奇慢无比,请问各位大侠有什么好的办法来提高绘制速度,同时每一点还可以单独处理(如可以拖动修改它的值),多线程可行吗,如果采用多线程应该怎么处理?
   
  分不够可以在加!

解决方案 »

  1.   

    用多线程绘制不会提高绘制速度。原因是绘制的任务量没有降低。
    我们知道显示器的表达能力是有限的,而你的数据是大大超过显示器的表达能力。
    现在你明白我的意思了吗?你可以采用简化数据的方法,即便你简化了数据,在显示器上仍然不会漏出破绽。这种方法叫做LOD,level of detail。有以下两个实现的要点:
    1. 处于屏幕之外的点不予处理。对于你的数据我觉得很容易可以挑选出将会被显示在窗口中的数据,这一过程消耗的CPU事件将会非常短。
    2. 按照现在的显示的scale,计算简化模型。简化模型应该在不露出破绽的前提下尽量简化。比如,数据点P1, P2, ....., P60;在屏幕上显示的时候P12,...., P41点是重合的,那么理所当然的,你的程序应该能够识别出这一情况,绘制的时候仅仅会址一次,而不是从 P12一直绘制到 P41。明白了吗?============================================================================
    提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
    http://alphasun.betajin.com/                            给我发信息请附带原帖地址
    http://www.betajin.com/alphasun/index.htm
    DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析