一种分层处理操作对象的方法及应用技术

技术编号:4167066 阅读:264 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种分层处理操作对象的方法,包括以下步骤:创建3个内存DC;在第一个内存DC中画上背景;用户选择操作对象,查找操作对象下面的所有对象;把第一内存DC上的整个背景画在第二内存DC中,再把操作对象下面的所有对象按顺序画在第二个内存DC上;用户对对象进行操作,计算需刷新的区域A,并在需刷新的区域A内查找相邻操作对象间的所有对象和查找最上层操作对象上面的所有对象,将第二个内存DC上对应的刷新的区域A画在第三个内存DC上,把操作后的操作对象及查找的对象按原来的顺序画在第三个内存DC上;把第三内存DC上的画面画到屏幕DC的相应区域上。本发明专利技术具有简单、快速、准确和占用CUP资源少的优点。

Method and application for layered processing operation object

The invention discloses a method for operating object slicing, which comprises the following steps: creating 3 memory DC; draw the background in the first memory in DC; user selection operation object, all objects below object lookup operation; the first memory on the DC the background picture in the second memory in DC, then all the object operation object below the painting in second memory DC in order; a user to manipulate objects, to calculate regional A refresh, and all objects and find the need to refresh in the A region of adjacent objects between the upper surface of the operation object of all objects, will refresh the area corresponding to the second A memory on the DC in third DC of memory on the object after operation and search object according to the order of the original painting in third memory DC; third The corresponding region of memory on the DC screen to screen DC. The invention has the advantages of simple, fast, accurate and little occupation of CUP resources.

【技术实现步骤摘要】

本专利技术涉及图像显示
,特别是涉及一种分层处理操作对象的方法及应用
技术介绍
随着计算机应用的普及,计算机绘图越来越普遍,涉及到美术、设计、教育、军事、 会议等领域,对对象的操作已经成为绘图过程中的一个重要环节,具体包括对对象的移动、 旋转、拉伸等。 现有技术中,主要通过在显卡上直接操作的方式来完成对对象的操作,即把所要 画的东西直接画到显卡上,采用在DC (Device Context设备场境)上画的方式,首先根据屏 幕的窗口句柄获取屏幕的DC,然后就在DC上进行所有对象的绘画。这样不仅会出现频繁的 显卡切换,而且显卡切换会消耗很多的CPU资源,导致刷新速度比较慢,另外也容易出现屏 幕闪动的现象。同时,随着对象个数的增多,刷新的区域也越来越大,因此对对象的操作就 需要不停的对计算机的显卡进行切换,从而导致对象的操作速度和效率下滑,导致软件使 用不方便,甚至很难使用。
技术实现思路
本专利技术的目的在于克服现有技术的缺点和不足,提供了一种分层处理操作对象的 方法,简单、准确的完成对对象的操作,还具有占用CUP资源少、图像刷新速度快、软件兼容 性好的优点。 本专利技术目的是通过下述技术方案实现的,一种分层处理操作对象的方法,如图1所示,包括以下步骤 创建3个内存DC; 在第一个内存DC中画上背景; 用户在桌面选择n个操作对象(n为正整数),其中按选中的操作对象位置的高低顺序,分别为操作对象1、操作对象2、操作对象3........操作对象n ;(最高层的为操作对象l,最底层的为操作对象n);查找操作对象n下面的所有对象,并创建存放有操作对象n 下面的所有对象数据及位置关系的列表Listn ; 把第一内存DC上的整个背景画在第二内存DC中,再把Listn的对象按原来位置 顺序画在第二个内存DC上; 根据用户在桌面对对象进行的操作,计算需刷新的区域A,并在需刷新的区域A内 查找相邻操作对象间的所有对象和查找最上层操作对象1上面的所有对象,将这些对象数 据及位置关系存放于新创建的不同列表List O到列表List n-1中; 根据刷新区域A的位置及大小,将第二个内存DC上对应的区域画在第三个内存DC 上,把操作后的n个操作对象及列表List O到列表List n-1中的对象按原来的顺序画在 第三个内存DC上; 把第三内存DC上的画面画到屏幕DC的相应区域上,屏幕DC其它区域的画面保持不变。 为更好的实现本专利技术,所述内存DC为页面大小,一直保存在系统内存中。 所述背景为颜色或/和图片。 所述用户在桌面选择的操作对象,具体为,若用户选择多个位置上下相连的操作对象,则把这多个位置上下相连的操作对象作为一个操作对象处理。 所述列表List为链表,用于存放除操作对象外的其它对象的数据及位置关系。 所述计算需刷新的区域A,具体是指计算出各操作对象进行操作过程中涉及的全部区域,即各操作对象操作前所在的区域、操作后所在的区域及操作过程中经过的区域的并集。 所述计算需刷新的区域A还可以是距形,具体为包括各操作对象操作前所在的区域、操作后所在的区域及操作过程中经过的区域的最小距形。 所述在需刷新的区域A内查找相邻操作对象间的所有对象和查找最上层操作对象1上面的所有对象,将这些对象数据及位置关系存放于新创建的不同列表List 0到列表List n-1中,具体是指在需刷新的区域A范围内查找操作对象n与操作对象n-l间的所有对象,创建存放操作对象n与操作对象n-1间的所有对象数据及位置关系的列表Listn_l,......,查找操作对象2与操作对象1间的所有对象,创建存放操作对象2与操作对象1间的所有对象数据及位置关系的列表List l,查找操作对象1上面的所有对象,创建存放操作对象1上面的所有对象数据及位置关系的列表List 0。 所述把列表List O到列表List n-1中的对象按原来的顺序画在第三个内存DC上,具体是把列表List O到列表List n-1中的对象在刷新区域A范围内的内容按原来位置顺序画在第三个内存DC上。 本专利技术的目的还在于在计算机绘图中的图像显示应用上述方法。将本专利技术方法应用于计算机绘图中的图像显示,可以加速计算机图像的显示、响应速度且不影响绘图的显示效果。本专利技术与现有技术相比,具有以下优点与有益效果 第一、快速提高计算机对对象的处理能力,如移动、旋转、拉伸对象等,应用本专利技术方法,把图像中对对象操作的处理操作,位置的变换等均在内存中进行,在内存中进行切换,只是把最后切换后的图片显示到桌面,这样一方面避免对显卡进行频繁的切换,大大的延长显卡的使用寿命,另一方面也有效的提高了绘图中计算机的刷新速度,更好的满足应用需求。 第二、由于主要的切换是在内存中进行,而不是在显卡中进行,因此可以有效的减少CPU资源的消耗,提高了反应速度的同时,也提高了软件的兼容性、易用性。 第三、由于用户对对象的操作只是涉及一小区域范围内图像的改变,因此只需对桌面内的图像有改变的区域进行刷新,而不需要对整个的桌面页面重新刷新。而本专利技术通过求出需刷新的区域A,然后把区域A上面涉及的全部非操作对象及进行操作后的操作对象按原顺序画上后再显示到桌面中,而且涉及的对象也只是画区域A范围内的部分,即有的非操作对象部分在区域A范围内,有的部分在区域A范围外,也只是画区域A范围内的部分,区域A范围外的不需要画,这样可以有效的提高刷新速度,同时也不影响图像的显示效5果。附图说明画在第三域画在第图1是本专利技术一种分层处理操作对象的方法流程图2实施例1应用本专利技术一种分层处理操作对象的方法流程图3是在第一个内存DC中画上背景图片的示意图4是实施例一中用户选中操作对象叉的示意图5是实施例一中第二个内存DC画上背景及List 1对象后的示意图6是实施例一中对对象进行移动操作的示意图7是实施例一中根据刷新区域A的位置及大小,将第二个内存DC上对应的区域个内存DC上的示意图8是实施例一中在第三个内存上画上操作对象的示意图9是实施例一中在第三个内存上画上列表List 0对象的示意图IO是实施例二中用户选中操作对象叉及三角形的示意图; 图11是实施例三中用户选中操作对象三角形及五角星的示意图; 图12是实施例三中第二个内存DC画上背景及List 2对象后的示意图; 图13是实施例三中对对象进行旋转操作的示意图14是实施例三中根据刷新区域A的位置及大小,将第二个内存DC上对应的区 三个内存DC上的示意图15是实施例三中在第三内存DC上画操作对象五角星的示意图; 图16是实施例三中在第三个内存上画上列表List 1对象的示意图; 图17是实施例三中在第三内存DC上画操作对象三角形的示意图; 图18是实施例三中在第三个内存上画上列表List 0对象的示意图。具体实施例方式下面结合实施例及附图,对本专利技术作进一步地详细说明,但本专利技术的实施方式不 限于此。 实施例一 本实施例一以用户选择1个操作对象,并对其进行移动操作为例对本专利技术方法进 行介绍,具体内容如下 S1、见流程2,创建3个页面大小并一直保存在系统内存中的内存DC; S2、在第一个内存DC中画上背景图片,见图3 (本实施例中为了取得更好的图像显 示对比效果,电脑桌面采用白色背景,实际应用中当然可以是各种色彩图片等)本文档来自技高网...

【技术保护点】
一种分层处理操作对象的方法,其特征在于,包括以下步骤:    创建3个内存DC;    在第一个内存DC中画上背景;    用户在桌面选择n个操作对象,其中按选中的操作对象位置的高低顺序,分别为操作对象1、操作对象2、操作对象3、......、操作对象n;查找操作对象n下面的所有对象,并创建存放有操作对象n下面的所有对象数据及位置关系的列表List  n;    把第一内存DC上的整个背景画在第二内存DC中,再把List  n的对象按原来位置顺序画在第二个内存DC上;根据用户在桌面对对象进行的操作,计算需刷新的区域A,并在需刷新的区域A内查找相邻操作对象间的所有对象和查找最上层操作对象1上面的所有对象,将这些对象数据及位置关系存放于新创建的不同列表List  0到列表List  n-1中;    根据刷新区域A的位置及大小,将第二个内存DC上对应的区域画在第三个内存DC上,把操作后的n个操作对象及列表List  0到列表List  n-1中的对象按原来的顺序画在第三个内存DC上;    把第三内存DC上的画面画到屏幕DC的相应区域上。

【技术特征摘要】
一种分层处理操作对象的方法,其特征在于,包括以下步骤创建3个内存DC;在第一个内存DC中画上背景;用户在桌面选择n个操作对象,其中按选中的操作对象位置的高低顺序,分别为操作对象1、操作对象2、操作对象3、......、操作对象n;查找操作对象n下面的所有对象,并创建存放有操作对象n下面的所有对象数据及位置关系的列表List n;把第一内存DC上的整个背景画在第二内存DC中,再把List n的对象按原来位置顺序画在第二个内存DC上;根据用户在桌面对对象进行的操作,计算需刷新的区域A,并在需刷新的区域A内查找相邻操作对象间的所有对象和查找最上层操作对象1上面的所有对象,将这些对象数据及位置关系存放于新创建的不同列表List 0到列表List n-1中;根据刷新区域A的位置及大小,将第二个内存DC上对应的区域画在第三个内存DC上,把操作后的n个操作对象及列表List 0到列表List n-1中的对象按原来的顺序画在第三个内存DC上;把第三内存DC上的画面画到屏幕DC的相应区域上。2. 根据权利要求1所述分层处理操作对象的方法,其特征在于,所述内存DC为页面大 小,一直保存在系统内存中。3. 根据权利要求l所述分层处理操作对象的方法,其特征在于,所述背景为颜色或/和 图片。4. 根据权利要求1所述分层处理操作对象的方法,其特征在于,所述用户在桌面选择 的操作对象,具体为,若用户选择多个位置上下相连的操作对象,则把这多个位置上下相连 的操作对象作为一个操作对象处理。5. 根据权利要求1所述分层处理操作对象的方法,其特征在于,所述列表List为链表, 用于存放除操作对象外的其它对象的数据...

【专利技术属性】
技术研发人员:陈先志
申请(专利权)人:广东威创视讯科技股份有限公司
类型:发明
国别省市:81[中国|广州]

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

1