基于Qt的橡皮筋动画绘制方法技术

技术编号:7512236 阅读:925 留言:0更新日期:2012-07-11 18:34
本发明专利技术是一种基于Qt的橡皮筋动画绘制方法,属于计算机辅助设计CAD领域,主要用于CAD绘图编辑工具的实现。本发明专利技术的目的在于:提供一种在Qt环境中通过捕捉鼠标移动事件和窗口暴露事件来刷新动画图形的方法,可以提高绘图的效率,提供更好的使用感受。其实现方法包括:将绘图的内容分为非实时变化的静态部分和实时变化的动态部分,减少数据量大的静态内容的重画,通过快速拷贝脱屏缓冲区来实现动画的清除,及时更新绘图区域并且避免刷新期间屏幕的闪烁。

【技术实现步骤摘要】

本专利技术是一种,属于计算机辅助设计CAD领域,主要用于CAD绘图编辑工具的实现。
技术介绍
很多计算机辅助设计CAD应用程序都需要在屏幕上显示绘制大量的图形,由于信息量比较大,重画的时间可能会比较长。不过这部分图形通常不会实时发生变化,这里我们可以称之为静态部分;而编辑操作产生的ー些指示性图形,比如橡皮筋可以提供ー个矩形框或线段用来表示选择或ー个区域,这些有动画效果的图形内容不是非常多,但是会随着操作者的鼠标移动而实时发生变化,这里我们可以称之为动态部分。这两部分各具特点,如何能够提高绘图的效率,并且提供更好的使用感受,是本专利技术要解决的问题。Qt是为开发跨平台的图形用户界面应用程序提供的一个完整的C++应用程序开发框架,它提供了绘制图形的接ロ。
技术实现思路
本专利技术的目的在于为基于Qt的应用程序提供一种绘制橡皮筋动画的方法。通常的橡皮筋动画采用XOR异或的方法,但是这种方法不一定能正常工作,因为在不同的系统平台上渲染的方式可能会不同,同时像素点间的异或操作会导致表现颜色的不固定。将动画覆盖的区域进行重画也是ー种方法,但对静态部分的重画会比较耗时,即使是仅仅对线段附近的一小部分进行重画。Qt本身也提供了ー个橡皮筋类QRiAberBand,但它的缺点是只能画矩形或线段,可用性不是很好。与传统的方法相比,本专利技术的方法首先将静态部分存放在一个脱屏缓冲区中,当有鼠标移动事件吋,会将脱屏缓冲区拷贝到屏幕上覆盖掉原来的内容,再直接在屏幕上绘制动画,这样可以立刻清除原来的动画并且不需要重画静态部分,提高了效率并且不会有闪烁感,直接绘制动画使得可以任意设置颜色和其它效果而不会受到作为背景的静态部分图案的影响。附图说明图1是完成一次动画刷新操作的流程图具体实施例方式动画效果一般是跟随鼠标的移动而变化的,QWidget是Qt系统中基本图形界面组件,当它捕捉到ー个鼠标移动事件后,更新当前的鼠标位置,设置刷新标志,然后将控制权返回到Qt事件循环中并在适当的时候产生ー个暴露事件;在处理暴露事件的时候,首先需要判断刷新标志,如果需要重画静态部分则立刻进行并且更新脱屏缓冲区,否则直接将脱屏缓冲区拷贝到屏幕上,覆盖掉原来的内容,这样同时也清除了上一个状态的动画内容,再根据当前的鼠标位置直接在屏幕上绘制新的动画内容,这样连续进行就可以在屏幕上产生一种连续的效果。权利要求1.一种,其特征在干,包含以下技术特征将非实时变化的图形作为静态内容存放在脱屏缓冲区中,将动画等作为动态内容,刷新的时候直接将静态内容拷贝到屏幕上,再在屏幕上根据当前状态绘制新的动画。2.根据权利要求1所述的,其特征在干,所述的技术特征不同于传统的XOR异或方式绘制动画的方法。通过脱屏缓冲区技术提高了工作效率,及时更新绘图区域并且避免刷新期间屏幕的闪烁,可以绘制各种不同颜色和属性的动画。全文摘要本专利技术是一种,属于计算机辅助设计CAD领域,主要用于CAD绘图编辑工具的实现。本专利技术的目的在于提供一种在Qt环境中通过捕捉鼠标移动事件和窗口暴露事件来刷新动画图形的方法,可以提高绘图的效率,提供更好的使用感受。其实现方法包括将绘图的内容分为非实时变化的静态部分和实时变化的动态部分,减少数据量大的静态内容的重画,通过快速拷贝脱屏缓冲区来实现动画的清除,及时更新绘图区域并且避免刷新期间屏幕的闪烁。文档编号G06T13/00GK102568022SQ201010601509公开日2012年7月11日 申请日期2010年12月23日 优先权日2010年12月23日专利技术者杨若海, 黄国勇 申请人:北京晶智意达科技有限公司本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:杨若海黄国勇
申请(专利权)人:北京晶智意达科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术