一种矢量图形移动过程中的绘制方法
技术领域
本发明涉及一种矢量图形移动绘制技术
背景技术
计算机中显示的图形一般可以分为两大类——矢量图和位图。
矢量图使用直线和曲线来描述图形,这些图形的元素(即图元对象)是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的。例如一幅花的矢量图形实际上是由线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色决定花显示出的颜色。由于矢量图形可通过公式计算获得,所以矢量图形文件体积一般较小。矢量图形最大的优点是无论放大、缩小或旋转等不会失真。
位图也称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。
由于矢量图形每次的绘制都需要进行数学运算,因此矢量图形绘制速度受到图形的复杂度影响,图形简单时绘制速度明显比位图要快,但随着图形复杂程度的上升,绘制速度下降得很明显,在绘制复杂的图形的时候速度往往比绘制位图要慢。这个过程是一个线性变化的过程,也就是说图形绘制的速度是跟数据量直接相关。
在矢量图形编辑软件中,矢量图形中图元对象的移动是一个图形重绘的过程。并且,一个复杂的矢量图形中通常包含许多图层,不同的图元对象位于不同的图层,即图元对象之间存在上下层的图层关系,在某一图元对象移动的过程中,移动路线上遇到覆盖或是被覆盖的图元对象都需要重新绘制,假设每移动一个像素点就需要重绘一次,则移动一个像素点后图元对象所移动到的新的位置如果存在其他图元对象,则该其他图元对象也需要重新绘制。从而,在图形移动的频率高的情况下,由于图形绘制量大,计算机往往会很卡。
为了减少庞大的绘制量,现有技术对矢量图形的重绘方式进行了改进,但这些绘制方法都只能运用在局部特定的环境,本身并不通用。如微软的Word图形编辑:移动矢量图形时只是在最顶层进行绘制虚框,被移动的图形只有等鼠标放下才重绘,从而减少了图形绘制量和计算机的运算复杂度。但这种只能运用在用户操作上,在动画等方面这种方式就不能用,因此本身具有局限性。
发明内容
本发明主要解决的技术问题是提供一种矢量图形移动过程中的绘制方法,使得图形移动速度得以加快,尤其在需要移动的图形是由比较复杂的图元对象组合而成,或需要移动的图形中图元对象填充颜色较多时,移动速度会明显加快。
为了解决上述技术问题,本发明提供了一种矢量图形移动过程中的绘制方法,包含以下步骤:
A对发生移动的矢量图形进行逻辑图层划分,将该矢量图形中待移动的图元对象构成中间逻辑图层,该矢量图形中位于待移动的图元对象上层的图元对象构成顶层逻辑图层,位于待移动的图元对象下层的图元对象构成底层逻辑图层;
B分别将所述顶层逻辑图层、中间逻辑图层、和底层逻辑图层绘制为对应的位图;
C在所述待移动的图元对象移动到新的位置时,先粘帖底层逻辑图层的位图,然后根据所述移动到的新位置粘帖中间逻辑图层的位图,最后粘帖顶层逻辑图层的位图。
作为上述技术方案的改进,所述待移动的图元对象为一个单独的图元对象;或者,所述待移动的图元对象为一个包含至少两个图元对象的图元对象组。
作为上述技术方案的改进,所述将中间逻辑图层绘制为位图的步骤之后,还包含以下步骤:
获取中间逻辑图层位图的大小;
所述粘帖底层逻辑图层位图的步骤中,根据所述待移动图元对象移动前和移动后的位置、以及所述中间逻辑图层位图的大小,分别截取移动前和移动后相同位置相同大小的底层逻辑图层位图,粘帖所述截取的位图;
所述粘帖顶层逻辑图层位图的步骤中,根据所述待移动图元对象移动前和移动后的位置、以及所述中间逻辑图层位图的大小,分别截取移动前和移动后相同位置相同大小的顶层逻辑图层位图,粘帖所述截取的位图
作为上述技术方案的改进,所述待移动的图元对象每移动N个像素点,执行所述步骤C;其中N为预设自然数。
本发明实施方式与现有技术相比,主要区别及其效果在于:整个图形移动过程都是在将矢量图形转换为位图后以贴图的方式来实现的,不受矢量图形多少及复杂度的影响,从而加快了图形重绘速度,进而加快了图形移动速度。尤其在需要移动的图形是由比较复杂的图元对象组合而成,或需要移动的图形中图元对象填充颜色较多时,移动速度会明显加快。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1是本发明第一实施方式的矢量图形移动过程中的绘制方法流程图;
图2是本发明第二实施方式的矢量图形移动过程中的绘制方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种矢量图形移动过程中的绘制方法,如图1所示。在步骤101中,对发生移动的矢量图形进行逻辑图层划分,待移动的图元对象构成中间逻辑图层,位于待移动的图元对象上层的所有图元对象构成顶层逻辑图层,位于待移动的图元对象下层的所有图元对象构成底层逻辑图层。这里待移动的图元对象可以是一个单独的图元对象,也可以是由多个图元对象构成的图元对象组。
在步骤102中,分别将顶层逻辑图层、中间逻辑图层、和底层逻辑图层绘制为对应的透明背景的位图。在待移动的图元对象开始发生移动时,每移动N个像素点,执行一次重绘步骤103。这里N可以是预先设定的任意自然数,即可以每移动1个像素点重绘一次,也可以每移动N个像素点重绘一次。
在步骤103中,在所述待移动的图元对象移动到新的位置时,先在屏幕上粘帖(即重绘)底层逻辑图层的位图,然后根据所移动到的新位置粘帖(即重绘)中间逻辑图层的位图,最后粘帖(即重绘)顶层逻辑图层的位图。由于整个移动过程都是在将矢量图形转换为位图后以贴图的方式来实现的,不受矢量图形多少及复杂度的影响,从而加快了图形重绘速度,进而加快了视觉上图形移动速度。尤其在需要移动的图形是由比较复杂的图元对象组合而成,或需要移动的图形中图元对象填充颜色较多时,移动速度会明显加快。
本发明第二实施方式同样涉及一种矢量图形移动过程中的绘制方法,与第一实施方式大致相同,其区别在于,在第一实施方式中,进行图形重绘时直接依次粘帖完整的底层逻辑图层位图、中间逻辑图层位图和顶层逻辑图层位图;而在本实施方式中,如图2所示,将中间逻辑图层绘制为位图之后,还获取该中间逻辑图层位图的大小;在粘帖底层逻辑图层位图时,根据待移动图元对象移动前和移动后的位置、以及该中间逻辑图层位图的大小,分别截取移动前和移动后相同位置、(与中间逻辑图层位图)相同大小的两块底层逻辑图层局部位图,重新粘帖所截取的部分位图;同样,在粘帖顶层逻辑图层位图时,也根据待移动图元对象移动前和移动后的位置、以及中间逻辑图层位图的大小,分别截取移动前和移动后相同位置、(与中间逻辑图层位图)相同大小的两块顶层逻辑图层局部位图,粘帖所截取的部分位图。
本实施方式适用于移动图元对象在整体图形中所占面积比例较小的情况,由于对于计算机而言,从一个大图截取一个小图速度很快,但是绘制一个大图片的速度明显会比绘制小图片要慢很多,因此局部贴图的速度比整幅贴图速度要快,尤其在移动的图元对象面积不大的情况下,局部贴图速度明显更快。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。