目的:
基于QGraphicsView绘画曲线之双缓冲机制,减少线在一直绘画过程中出现卡顿, 刷新慢的问题,同时在在绘曲线过程中出现实时出现反锯齿。
知识点:
在图形图象处理编程过程中,双缓冲是一种基本的技术。
双缓冲实现过程如下:
1、在内存中创建与画布一致的缓冲区
2、在缓冲区画图
3、将缓冲区位图拷贝到当前画布上
4、释放临时内存缓冲区
引用双缓冲机制原因是:
进行复杂的图形处理时或者大量处理某个图像,那么窗体在重绘时由于过频的刷新而引起闪烁或者卡顿现象。解决这一问题的有效方法就是双缓冲技术
双缓冲机制:
个人看法:主要是避免大量数据被刷新、处理或者数据输出与输出在处理过程中速度不协调。特意利用临时缓冲区,保存数据,进行缓冲,然后达到某种条件取出。
QGraphicsView绘画曲线注意点(二)
细节点:
1、画布(QImage)要填充QGraphicsVItem(设置大小),
2、当某个曲线绘画完后,注意QPainterPath调用moveTo()移动到适当某个点,不然QPainter在drawPath()默认是是从QPointF(0,0)为起点绘画曲线。
3、在实现QPainter调用drawPath()时,如果不清空,它会每次都要把加入路径的path重新绘画一遍,所以在长时间绘画曲线时应该考虑要适当清空QPainterPath(&= QpainterPath()),因为它没有清空api。
4、QPainter 它本身需要绑定设备,才能实现在设备上进行绘画。有两种绑定方式。
4.1 QPainter painter(QPaintDevice *device)构造中设置
4.2 QPainter painter。 painter.begin(QPaintDevice *device)这种方式需要注意一旦调用begin,所有的QPainter 设置比如setPen(), setBrush() 等等都得重新设置为默认值。并且一般与end()成对。