- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于对象间关系判断的MFC程序
GDI绘图优化方法
罗幸明,徐伟强,刘威,赖晓健
浙江中控技术股份有限公司,浙江杭州,310053
摘 要:笔者曾经在《一种基于自定义剪切区集合的MFC程序GDI绘图优化方法》一文中提出了一种解决高分辨率及复杂画面下的GDI程序绘图优化的方法,该方法在实际的现场生产应用中被证明是行之有效的。但是,经过笔者更深入的研究发现,该方法在某些极端的场景下优化效果可能会退化甚至失效,其根本原因在于区域概念屏蔽了图形对象之间的影响关系,因而无法做到对重绘对象的有效控制。鉴于此,本文提出了一种基于对象间关系判断的MFC程序GDI绘图优化方法,可以有效解决上述问题。
关键词: 对象关系、MFC、GDI、绘图、优化
One Optimizing Design Based On Objects Relationship Of MFC Programs Drawing With GDI
Luo Xingming,Xu Weiqiang,Liu Wei,Lai Xiaojian
Zhejiang SUPCON Co.,Ltd, Hangzhou, Zhejiang, 310053
Abstract:On the paper of 《One Optimizing Design Based On Custom Clipping Region Sets Of MFC Programs Drawing With GDI》, I have presented a simple effective and practical optimizing design which can effectivly improve drawing performance of complex graphics in industrial field. But after further study, I found that the effect of which optimizing design may be degenerative and even noneffective under some extreme situation, because it use the region but not the relationship to optimize graphic objects drawing. Based on this situation, this paper presents a new optimizing design based on objects relationship which can effectivly resolve this problem.
Keyword:Objects Relationship, MFC, GDI, Drawing,Optimizing
基于自定义剪切区集合判断方法的基本思想
基于自定义剪切区集合判断方法的基本思想是把系统剪切区由“一个”矩形扩展为由若干个矩形组成的“集合”,变系统剪切区为自定义剪切区集合,凡是与该集合中的“矩形”相交的图形对象都需要被重绘,参考实现如下:
全局保存一个用于存储自定义剪切区集合的数据结构;
在程序所有需要主动重绘界面的地方,将待重绘区域加入上述自定义剪切区集合;
针对画面上所有图形对象(此处的图形对象指的是流程图绘制软件中所提供的直线、折线、矩形、椭圆、扇形、多边形、按钮等用于绘制流程图所需的基本元素,下文所有出现的“对象”均指的此概念),逐个判断是否与当前保存的自定义剪切区集合中的区域相交,如果相交则该图形对象需要被重绘;
将重绘对象的区域加入自定义剪切区集合刷新相交图形或者叠加图形;
完成所有图形对象的绘制后清空自定义剪切区集合。
参考流程示图如下:
基于自定义剪切区集合判断方法的缺陷
基于自定义剪切区集合判断方法的核心思想在于以下两点:
所有与自定义剪切区集合相交的对象都是需要重绘的;
所有与重绘对象所在区域相交的对象也是需要重绘的。
换言之,其核心在于区域的相交性判断,即通过区域的相交性判断以决定图形对象是否需要被重绘。一定程度上,这是一种可以简化程序处理逻辑的正确做法,也可以满足通常的应用需求。但事实上,也正是由于使用区域关系简化替代了对象间关系,使得该方法在某些场景下无法做到有效控制需要重绘的图像对象,从而造成优化效果退化甚至失效。具体来说主要体现在可能出现刷新区域的不合理扩散、相交判断结果的不确定性以及自定义剪切区集合溢出这三个方面。
刷新区域的不合理扩散
考虑下图的情况:
由于Line1既与Rect1相交,也与Rect2相交,所以当Rect1发生变化后,会连带影响Line1、Rect2及所有与Line1相交的其他对象
文档评论(0)