日期:2014-05-17  浏览次数:21871 次

GDI+绘图,如何实现局部刷新
如题所示,GDI+绘图,如何实现局部刷新,如何确定需要刷新的区域,跪求大侠指导

------解决方案--------------------
对象.Invalidate(new Rectangle(10, 10, 100, 100)); //只刷新[0,0]-[100,100]这个区域
------解决方案--------------------
如果只有一个控件,就是全部刷新的,只是你程序里不要重新运行所有的,比如系统要求刷新了,而你程序没有变什么,就直接返回缓存
------解决方案--------------------
哪些区域需要刷新是你自己控制的,这个没什么能帮你吧。
------解决方案--------------------
那要记录被污染的区域,然后重新绘制就好了吧。
使用GraphicsPath和region可以实现这个功能。
------解决方案--------------------
引用:
引用:那要记录被污染的区域,然后重新绘制就好了吧。
使用GraphicsPath和region可以实现这个功能。
看来你还是没有明白我的意思,如果我已经知道哪些区域是被污染了,那当然可以记录下来,我现在是不知道哪些区域被污染了,就想找一种比较智能的方法进行判断哪些区域被污染了,有没有这种方法呢


不知道就全刷吧。
------解决方案--------------------
脏矩阵算法  这个和你实现的方式有很大的关系  要分块构造好绘画的界面,对引起改变的地方做判断
------解决方案--------------------
我想你用鼠标操作,然后画出个矩形,然后这个矩形区域就是你要刷新的位置,然后获取这个区域的坐标值,再用二楼的方法不就好了?不知道这个方法咋样?
------解决方案--------------------
引用:
引用:脏矩阵算法  这个和你实现的方式有很大的关系  要分块构造好绘画的界面,对引起改变的地方做判断
能具体说一说吗?或者给一点代码

应该是将图形界面分区,然后分区进行刷新重绘,还有就是将绘画的图形在内存中保存静态图片,如果内容无变化的重绘速度很快。