大数据量绘图慢 一个时间较长,数据量比较大的绘图。处理起来耗费时间,当我点击滚动条改变起始位置的时候,有什么办法加快绘图?现在用的已经是内存DC绘图。要求别的解决办法。望请高人伸出援助之手! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.只绘制可见部分2.内存DC提高效率要看你如何应用.你是把所有图绘在内存DC上,然后把需要显示的部分复制出来么?这样效率应该不会低,或者说在最开始绘制的时候效率会低,但后面的简单BitBlt效率不会低.3.只绘制无效部分,WM_PAINT时,并不是所有部分都绘制绘制,你可以判断哪部分需要重绘,对于图形内单个对象绘制比较复杂的情况来说,这样带来的效率提升非常明显. 顶3楼加一条:用一个线程在内存里绘图,尽量多绘;如果是文件,可能多次打开的话,也可以把运算后的数据保存成文件。还有选择函数:SetPixelV 比 SetPixel 快FillSolidRect 比 FillRect 快..... MoveToLineTo函数画出来的 大数据量的话要先做处理,比如一屏分辨率只有1000个点,但你要画10万个点,就要先处理一下,把10万个点用1000个数据来表示,然后只画这1000个数据。可以参考CoolEdit(Audition)的做法。 我给你出个主意。你呀 先设定一个 两倍或者更大的窗体空间 ,然后绘制图形 ,然后贴图 ,当选择了滚动 ,那么 你根据滚动先绘制图形 ,然后重新绘制内存的图形,这样速度就快多了 ,速度慢的主要问题是:大数据量的绘制占用时间,再就是 定位你绘制的开始点也占用大量时间 ,启动一个线程,来计算绘制的开始点,两外一个线程绘制内存 bmp ,足够 ,保准你 提高速度 70% 用opengl吧,里面的显示列表可以解决你这个问题 肯定的 ,不过 我还是建议你采用 opengl 来实现 绘制 ,可能难度大 ,在绘制上没问题 ,采用线程来计算开始头数据点 ,跟尾数据点 ,基本就没问题了 ,这个线程 该如何启用 ,就看你想怎么处理 opengl东西没用过啊,哪有实例?我得先看看。各位拜托多多指教! Win32 自绘ListBox的问题! 鼠标事件响应的问题 如何改DirectShow Ball例子的输出pin? 如何取字符串第5个字符右边的所有字符?函数是什么? 如何设置属性页的大小? 懒人求 Xtreme ToolKit Pro 8.71 安装程序的问题? 结束进程 MFC多线程成图 学校实训周,编程能力为0的小弟求助 下面几个错误= = 請問checkbox的問題 七夕节发个乞讨贴
2.内存DC提高效率要看你如何应用.你是把所有图绘在内存DC上,然后把需要显示的部分复制出来么?这样效率应该不会低,或者说在最开始绘制的时候效率会低,但后面的简单BitBlt效率不会低.
3.只绘制无效部分,WM_PAINT时,并不是所有部分都绘制绘制,你可以判断哪部分需要重绘,对于图形内单个对象绘制比较复杂的情况来说,这样带来的效率提升非常明显.
SetPixelV 比 SetPixel 快
FillSolidRect 比 FillRect 快.....
LineTo
函数画出来的
可以参考CoolEdit(Audition)的做法。