最近看到论坛中关于大量
数据绘制的帖子很多,我这里编写了一个支持无限延伸的画板。
简单的说,软件启动后,你可以按住鼠标左键划线,按住右键拖动可以平移画布位置,从而留出新的空白的画布供你绘图,再次将画布拖回,你会发现你上一次绘制的内容还存在。画布可以无限拖动延伸(理论上x,y不超过MSVC标准的int的最大值)
原理:
每条线的数据保存在一个名为Line的
结构类中,类中包括一系列组成这条线的点(QPoint)
画布的线保存在一个Line的数组中,拖动画布后,你所拖动的距离向量会保存在一个名为offset的QPoint中,这时创建一个与窗体(并非画布)大小一致的
QPixmap,将
QPainter 用offset的值translate后,根据数据绘制在这个QPixmap中,最后将QPixmap绘制到窗体上,其实是一个双缓冲机制。
多余的就看源码吧....
paintpad.zip (12 K) 下载次数:222