一种图像绘制方法及设备
技术领域
本申请涉及通信技术领域,特别涉及一种图像绘制方法。本申请同时还设计一种图形处理设备。
背景技术
随着互联网技术的不断发展,HTML5作为新兴标准正在以越来越快的速度替代目前的HTML4。HTML5包含丰富的元素和属性,它们都支持现行的HTML 4.01版本规范,除此之外HTML5还引入了新元素和属性,它们适用许多使用web页面的领域——音频、视频、图形、数据存储以及内容呈现等。
作为可视化技术的重要组成部分,网页绘图技术是一个新的HTML元素,其中HTML5canvas是一个原生HTML绘图簿,用于JavaScript代码,HTML5canvas元素可以被Script语言(通常是JavaScript)用来进行基础图形的工作,例如画图、合成图象、以及制作动画等。
在使用Canvas元素进行绘图的过程中,有时需要在图像中各个原有图形的基础上重新进行绘制,此时若画面中已存在大量的图形,那么重绘一次图形不仅对于设备来说性能开销较大,而且也增加了绘图人员的工作量,从而导致画面无法流畅地进行显示。
为了降低重绘图像所需的工作量,现有技术一般通过分析来尽量减少重绘区域。目前对于重绘问题所采用的方法均是擦除,即每一帧图像绘制前,先擦除画布上所有图像,再绘制新图像。然而通过该方法重绘需要在直接擦除全部图像后再绘制全部图像,其中缺乏对画布上一帧图像的分析,因此该方法虽然处理简单,但导致每一帧的工作量都非常巨大,复杂图像情景下就会出现运行不流畅的现象,降低了绘图用户的使用体验以及工作效率。
发明内容
本申请提供了一种图像绘制方法,用以减少无关图形被擦除后的重绘工作,从而有效降低重绘工作量以及提高画图效率。该方法包括:
获取待绘制图像相对于当前的原始图像发生变化的图形,并将所述发生变化的图形作为待处理的基础图形,所述待绘制图像以及所述原始图像中均包含多个图形;
根据所述基础图形在所述待绘制图像中的位置信息以及所述原始图像中除所述基础图形以外的其他图形的位置信息确定待处理的完整图形,所述完整图形包括所述原始图像中需要重新绘制的图形;
在所述基础图形以及所述完整图形的面积内进行图形绘制,生成所述待绘制图像。
优选地,所述待绘制图像为所述原始图像在添加所述基础图形后的图像;或,所述待绘制图像为所述原始图像在删除所述基础图形后的图像;或,所述待绘制图像为所述原始图像中的基础图形在产生位移或形变后的图像。
优选地,根据所述基础图形在所述待绘制图像中的位置信息以及所述原始图像中除所述基础图形以外的其他图形的位置信息确定待处理的完整图形,具体为:
获取基础图形的位置信息以及与所述原始图像中的图形对应的图形链,所述图形链根据各所述图形之间的相交关系生成,由各所述图形的节点标识组成,各所述图形与所述节点标识一一对应;
根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链。
优选地,在所述基础图形以及所述完整图形的面积内进行图形绘制,具体为:
根据所述原始图像、所述基础图形以及与所述发生变化的图形链相关联的图形绘制所述待绘制图像。
优选地,当所述待绘制图像为所述原始图像在添加所述基础图形后的图像时,根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链,具体为:
根据所述基础图形的位置信息判断所述基础图形是否与所述待绘制图像中的其他图形相交;
若所述基础图形与所述待绘制图像中的其他图形不相交,根据所述基础图形生成新图形链,并将所述新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;
若所述基础图形与所述待绘制图像中的其他图形相交,根据所述基础图形以及包含所述其他图形的节点标识的图形链生成新图形链,并将所述新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
优选地,根据所述基础图形以及包含所述其他图形的节点标识的图形链生成新图形链,具体为:
将所述基础图形的节点标识分别插入当前与所述基础图形相交的其他图形所对应的图形链;
判断所述基础图形是否同时与所述原始图像中的多个其他图形相交;
若所述基础图形同时与所述原始图像中的多个其他图形相交,将当前包含所述基础图形的节点标识的图形链进行合并连接,并将合并连接后的图形链作为所述新图形链;
若所述基础图形仅与所述原始图像中的一个其他图形相交,将当前包含所述基础图形的节点标识的图形链作为所述新图形链。
优选地,当所述待绘制图像为所述原始图像在删除所述基础图形后的图像时,根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链,具体为:
判断所述图形链在删除所述基础图形的节点标识后是否断裂为多个图形链;
若所述图形链在删除所述节点标识后未断裂为多个图形链,将删除了所述节点标识后的图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;
若所述图形链在删除所述节点标识后断裂为多个图形链,且所述多个图形链直接无法合并连接,将所述多个图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;
若所述图形链在删除所述节点标识后断裂为多个图形链,且所述多个图形链能够合并连接,将所述多个图形链合并连接后的新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
优选地,当所述待绘制图像为所述原始图像中的基础图形在位移或形变后的图像时,根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链,具体为:
根据包含所述基础图形的节点标识的图形链以及所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形之间相交关系生成第一图形链;
根据所述第一图形链以及所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形之间相交关系生成第二图形链,并将所述第二图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
优选地,根据包含所述基础图形的节点标识的图形链以及所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形之间相交关系生成第一图形链,具体为:
判断所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形是否仍然相交;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形仍然相交,将所述图形链作为所述第一图形链;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且图形链在删除所述节点标识后未断裂为多个图形链,将删除了所述节点标识后的图形链作为所述第一图形链;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且所述图形链在删除所述节点标识后断裂为多个无法合并连接的图形链,将所述多个图形链作为所述第一图形链;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且所述图形链在删除所述节点标识后断裂为多个能够合并连接的图形链,将所述多个图形链合并连接后的新图形链作为所述第一图形链。
优选地,根据所述第一图形链以及所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形之间相交关系生成第二图形链,具体为:
判断所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形是否相交;
若所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形相交,根据所述基础图形、所述第一图形链以及包含所述其他图形的节点标识的图形链生成所述第二图形链;
若所述基础图形在位移或形变后仍不与所述原始图像中当前未相交的其他图形相交,根据所述基础图形以及所述第一图形链生成所述第二图形链。
优选地,根据所述基础图形、所述第一图形链以及包含所述其他图形的节点标识的图形链生成所述第二图形链,具体为:
将所述第一图形链分别插入与所述其他图形对应的图形链;
判断所述其他图形的数量是否大于一;
若所述其他图形的数量大于一,将当前包含所述基础图形的节点标识的图形链进行合并连接,并将合并连接后的图形链作为所述第二图形链;
若所述其他图形的数量仅为一,将当前包含所述基础图形的节点标识的图形链作为所述第二图形链。
优选地,根据所述原始图像、所述基础图形以及与所述发生变化的图形链相关联的图形绘制所述待绘制图像,具体为:
将所述基础图形以及与所述发生变化的图形链相关联的图形作为待擦除图形;
确定与所述待擦除图形对应的最小包围多边形;
将所述最小包围多边形进行擦除,并根据所述基础图形位移或形变后各所述待擦除图形的位置绘制所述待绘制图像。
相应地,本申请还提出了一种图像绘制设备,包括:
获取模块,获取待绘制图像相对于当前的原始图像发生变化的图形,并将所述发生变化的图形作为待处理的基础图形,所述待绘制图像以及所述原始图像中均包含多个图形;
确定模块,根据所述基础图形在所述待绘制图像中的位置信息以及所述原始图像中除所述基础图形以外的其他图形的位置信息确定待处理的完整图形,所述完整图形包括所述原始图像中需要重新绘制的图形;
生成模块,在所述基础图形以及所述完整图形的面积内进行图形绘制,生成所述待绘制图像。
优选地,所述待绘制图像为所述原始图像在添加所述基础图形后的图像;或,所述待绘制图像为所述原始图像在删除所述基础图形后的图像;或,所述待绘制图像为所述原始图像中的基础图形在位移或形变后的图像。
优选地,所述确定模块具体用于:
获取基础图形的位置信息以及与所述原始图像中的图形对应的图形链,所述图形链根据各所述图形之间的相交关系生成,由各所述图形的节点标识组成,各所述图形与所述节点标识一一对应;
根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链。
优选地,所述生成模块在所述基础图形以及所述完整图形的面积内进行图形绘制,具体为:
所述生成模块根据所述原始图像、所述基础图形以及与所述发生变化的图形链相关联的图形绘制所述待绘制图像。
优选地,当所述待绘制图像为所述原始图像在添加所述基础图形后的图像时,所述确定模块根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链,具体为:
所述确定模块根据所述基础图形的位置信息判断所述基础图形是否与所述待绘制图像中的其他图形相交;
若所述基础图形与所述待绘制图像中的其他图形不相交,所述确定模块根据所述基础图形生成新图形链,并将所述新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;
若所述基础图形与所述待绘制图像中的其他图形相交,所述确定模块根据所述基础图形以及包含所述其他图形的节点标识的图形链生成新图形链,并将所述新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
优选地,根据所述基础图形以及包含所述其他图形的节点标识的图形链生成新图形链,具体为:
将所述基础图形的节点标识分别插入当前与所述基础图形相交的其他图形所对应的图形链;
判断所述基础图形是否同时与所述原始图像中的多个其他图形相交;
若所述基础图形同时与所述原始图像中的多个其他图形相交,将当前包含所述基础图形的节点标识的图形链进行合并连接,并将合并连接后的图形链作为所述新图形链;
若所述基础图形仅与所述原始图像中的一个其他图形相交,将当前包含所述基础图形的节点标识的图形链作为所述新图形链。
优选地,当所述待绘制图像为所述原始图像在删除所述基础图形后的图像时,所述确定模块根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链,具体为:
所述确定模块判断所述图形链在删除所述基础图形的节点标识后是否断裂为多个图形链;
若所述图形链在删除所述节点标识后未断裂为多个图形链,所述确定模块将删除了所述节点标识后的图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;
若所述图形链在删除所述节点标识后断裂为多个图形链,且所述多个图形链直接无法合并连接,所述确定模块将所述多个图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;
若所述图形链在删除所述节点标识后断裂为多个图形链,且所述多个图形链能够合并连接,所述确定模块将所述多个图形链合并连接后的新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
优选地,当所述待绘制图像为所述原始图像中的基础图形在位移或形变后的图像时,所述确定模块根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链,具体为:
根据包含所述基础图形的节点标识的图形链以及所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形之间相交关系生成第一图形链;
根据所述第一图形链以及所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形之间相交关系生成第二图形链,并将所述第二图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
优选地,所述确定模块根据包含所述基础图形的节点标识的图形链以及所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形之间相交关系生成第一图形链,具体为:
判断所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形是否仍然相交;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形仍然相交,所述确定模块将所述图形链作为所述第一图形链;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且图形链在删除所述节点标识后未断裂为多个图形链,所述确定模块将删除了所述节点标识后的图形链作为所述第一图形链;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且所述图形链在删除所述节点标识后断裂为多个无法合并连接的图形链,所述确定模块将所述多个图形链作为所述第一图形链;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且所述图形链在删除所述节点标识后断裂为多个能够合并连接的图形链,所述确定模块将所述多个图形链合并连接后的新图形链作为所述第一图形链。
优选地,所述确定模块根据所述第一图形链以及所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形之间相交关系生成第二图形链,具体为:
判断所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形是否相交;
若所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形相交,所述确定模块根据所述基础图形、所述第一图形链以及包含所述其他图形的节点标识的图形链生成所述第二图形链;
若所述基础图形在位移或形变后仍不与所述原始图像中当前未相交的其他图形相交,所述确定模块根据所述基础图形以及所述第一图形链生成所述第二图形链。
优选地,所述确定模块根据所述基础图形、所述第一图形链以及包含所述其他图形的节点标识的图形链生成所述第二图形链,具体为:
将所述第一图形链分别插入与所述其他图形对应的图形链;
判断所述其他图形的数量是否大于一;
若所述其他图形的数量大于一,所述确定模块将当前包含所述基础图形的节点标识的图形链进行合并连接,并将合并连接后的图形链作为所述第二图形链;
若所述其他图形的数量仅为一,所述确定模块将当前包含所述基础图形的节点标识的图形链作为所述第二图形链。
优选地,所述生成模块根据所述原始图像、所述基础图形以及与所述发生变化的图形链相关联的图形绘制所述待绘制图像,具体为:
将所述基础图形以及与所述发生变化的图形链相关联的图形作为待擦除图形;
确定与所述待擦除图形对应的最小包围多边形;
将所述最小包围多边形进行擦除,并根据所述基础图形位移或形变后各所述待擦除图形的位置绘制所述待绘制图像。
由此可见,通过应用本申请的技术方案,首先获取待绘制图像相对于当前的原始图像发生变化的图形并将发生变化的图形作为待处理的基础图形,随后根据基础图形在待绘制图像中的位置信息以及原始图像中除基础图形以外的其他图形的位置信息确定待处理的完整图形,最终在基础图形以及完整图形的面积内进行图形绘制,生成待绘制图像。从而减少了在绘制图像时需要重绘的内容,能够显著地加快绘图速度,提高图像处理效率。
附图说明
图1为本申请提出的一种图像绘制方法的流程示意图;
图2为本申请具体实施例中添加图形流程的示意图;
图3为本申请具体实施例中删除图形流程的示意图;
图4为本申请具体实施例中移动或修改图形流程的示意图;
图5为本申请提出的一种图形处理设备的结构示意图。
具体实施方式
有鉴于背景技术中的问题,本申请提出了一种图像绘制方法,过对图像的分析,擦除相关图形范围内的图像,再重绘被擦除的图像,大大减少了无关图形被擦除后的重绘工作。这种方法适用于画板上图形较多的情景,能有效降低重绘工作量,提高现有的绘图效率,使运行更流畅。
如图1所示,为本申请提出的一种图像绘制方法的流程示意图,包括以下步骤:
S101,获取待绘制图像相对于当前的原始图像发生变化的图形,并将所述发生变化的图形作为待处理的基础图形,所述待绘制图像以及所述原始图像中均包含多个图形。
如背景技术所述,在日常的图形绘制过程中,当前的原始图像以及需要重新绘制的图像均是由多个图形组成,因此对于发生图形变化后的待绘制图像来说,其一般存在以下三种情况:
(1)待绘制图像为图像在添加所述基础图形后的图像;
(2)待绘制图像为图像在删除所述基础图形后的图像;
(3)待绘制图像为图像中的基础图形在位移或形变后的图像。
对于以上第一种情况,由于是直接添加基础图形,因此确定待处理的基础图形在添加至待基础图形后与现有的图形是否相交即可;对于第二种情况,则需要确定待处理的基础图形当前是否与其他图形相交,在删除待处理的基础图形后重新绘制与其相交的图形;对于第三种情况则需要同时结合考虑以上两种情况。
在本申请的具体实施例中,对于图形相交判定可以采用最小多边形的方式进行,即首先确定待判定图形的最小包围矩形(计算后缓存,无需每次都算),随后判断该两个多边形是否相交。
S102,根据所述基础图形在所述待绘制图像中的位置信息以及所述原始图像中除所述基础图形以外的其他图形的位置信息确定待处理的完整图形,所述完整图形包括所述原始图像中需要重新绘制的图形。
由于本申请的技术方案旨在在通过技术手段确定出需要重绘的图形面积来避免了全屏刷新以及达到提高绘图效率的目的,因此该步骤要在确定原始图像中基础图形的基础上进一步再确定与该基础图形存在着关联的其他图形,这些图形都需要重新进行绘制,因此本申请将其一并作为待处理的完整图形。在本申请的一个优选实施例中,可采用图形链的方式来进行处理,具体步骤如下:
步骤a)获取基础图形的位置信息以及与所述原始图像中的图形对应的图形链,所述图形链根据各所述图形之间的相交关系生成,由各所述图形的节点标识组成,各所述图形与所述节点标识一一对应。
步骤b)根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链。
基于S101中的三种不同的变化图形情况,该步骤针对不同情况的处理过程如下:
(1)待绘制图像为所述原始图像在添加所述基础图形后的图像,
该情况下,首先根据所述基础图形的位置信息判断所述基础图形是否与所述待绘制图像中的其他图形相交,若所述基础图形与所述待绘制图像中的其他图形不相交,根据所述基础图形生成新图形链,并将所述新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;若所述基础图形与所述待绘制图像中的其他图形相交,根据所述基础图形以及包含所述其他图形的节点标识的图形链生成新图形链,并将所述新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
具体地,为了在以上过程能够根据基础图形以及包含其他图形的节点标识的图形链生成新图形链,本申请优选实施例首先将基础图形的节点标识分别插入当前与所述基础图形相交的其他图形所对应的图形链,随后判断基础图形是否同时与图像中的多个其他图形相交,若所述基础图形同时与所述原始图像中的多个其他图形相交,将当前包含所述基础图形的节点标识的图形链进行合并连接,并将合并连接后的图形链作为所述新图形链;若所述基础图形仅与所述原始图像中的一个其他图形相交,将当前包含所述基础图形的节点标识的图形链作为所述新图形链。
在本申请的具体实施例中,添加待基础图形的过程如图2所示,首先新建图形链列表,该图形链描述的是多个图形的相交关系。如A-B-C表示A与B相交,B与C相交,A与C的是否直接相交没有表述,图形链没有方向性。在新加入一个图形D后,则采用上一步骤中多边形判断法判断D与存在的图形链A-B-C判断是否相交,若D与A相交,则图形链存储为D-A-B-C,当检测到与已有链路中的一个点相交,则无需检测链路中的剩余节点。若与另外一条链路也相交,如D-E-F,则合并链路,生成新链路若无相交图形,则新增一个图形链路D,这样即可在后续数据结构处理完成后绘制图形。
(2)待绘制图像为图像在删除所述基础图形后的图像
如图3所示,为本申请具体实施例中在删除待处理的基础图形后进行绘图的流程示意图,该情况下,首先判断所述图形链在删除所述基础图形的节点标识后是否断裂为多个图形链;若所述图形链在删除所述节点标识后未断裂为多个图形链,将删除了所述节点标识后的图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;若所述图形链在删除所述节点标识后断裂为多个图形链,且所述多个图形链直接无法合并连接,将所述多个图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;若所述图形链在删除所述节点标识后断裂为多个图形链,且所述多个图形链能够合并连接,将所述多个图形链合并连接后的新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
(3)待绘制图像为图像中的基础图形在位移或形变后的图像
如图4所示,为本申请具体实施例中移动或修改图形流程的示意图,该情况下,首先根据包含所述基础图形的节点标识的图形链以及所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形之间相交关系生成第一图形链,随后根据所述第一图形链以及所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形之间相交关系生成第二图形链,并将所述第二图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
出于图形互相相交的考虑,在以上根据包含基础图形的节点标识的图形链以及基础图形在位移或形变后与图像中当前已相交的其他图形之间相交关系生成第一图形链的过程中,主要是判断所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形是否仍然相交;若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形仍然相交,将所述图形链作为所述第一图形链;若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且图形链在删除所述节点标识后未断裂为多个图形链,将删除了所述节点标识后的图形链作为所述第一图形链;若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且所述图形链在删除所述节点标识后断裂为多个无法合并连接的图形链,将所述多个图形链作为所述第一图形链;若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且所述图形链在删除所述节点标识后断裂为多个能够合并连接的图形链,将所述多个图形链合并连接后的新图形链作为所述第一图形链。
对于第二图形链的生成过程,首先判断所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形是否相交;若所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形相交,根据所述基础图形、所述第一图形链以及包含所述其他图形的节点标识的图形链生成所述第二图形链;若所述基础图形在位移或形变后仍不与所述原始图像中当前未相交的其他图形相交,根据所述基础图形以及所述第一图形链生成所述第二图形链。
基于其他图形的数量,在本申请优选的实施例中,将所述第一图形链分别插入与所述其他图形对应的图形链,并判断所述其他图形的数量是否大于一;若所述其他图形的数量大于一,将当前包含所述基础图形的节点标识的图形链进行合并连接,并将合并连接后的图形链作为所述第二图形链;若所述其他图形的数量仅为一,将当前包含所述基础图形的节点标识的图形链作为所述第二图形链。
S103,在所述基础图形以及所述完整图形的面积内进行图形绘制,生成所述待绘制图像。
基于S102中所得到的变化图形链,在本申请优选实施例中,该步骤根据所述原始图像、所述基础图形以及与所述发生变化的图形链相关联的图形绘制所述待绘制图像。首先将所述基础图形以及与所述发生变化的图形链相关联的图形作为待擦除图形,随后确定与所述待擦除图形对应的最小包围多边形,最终将所述最小包围多边形进行擦除,并根据所述基础图形位移或形变后各所述待擦除图形的位置绘制所述待绘制图像。
通过以上流程可以看出,由于本申请仅针对待绘制图像及原始图像中的基础图形及其关联的完整图形进行获取以及重绘,因此相对于现有技术极大地减少了图形重绘的工作量,节省了人力以及资源消耗。
为达到以上目的,本申请还提出了一种图像绘制设备,如图5所示,包括:
获取模块510,获取待绘制图像相对于当前的原始图像发生变化的图形,并将所述发生变化的图形作为待处理的基础图形,所述待绘制图像以及所述原始图像中均包含多个图形;
确定模块520,根据所述基础图形在所述待绘制图像中的位置信息以及所述原始图像中除所述基础图形以外的其他图形的位置信息确定待处理的完整图形,所述完整图形包括所述原始图像中需要重新绘制的图形;
生成模块530,在所述基础图形以及所述完整图形的面积内进行图形绘制,生成所述待绘制图像。
在具体的应用场景中,所述待绘制图像为所述原始图像在添加所述基础图形后的图像;或,所述待绘制图像为所述原始图像在删除所述基础图形后的图像;或,所述待绘制图像为所述原始图像中的基础图形在位移或形变后的图像。
在具体的应用场景中,所述确定模块具体用于:
获取基础图形的位置信息以及与所述原始图像中的图形对应的图形链,所述图形链根据各所述图形之间的相交关系生成,由各所述图形的节点标识组成,各所述图形与所述节点标识一一对应;
根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链。
在具体的应用场景中,所述生成模块在所述基础图形以及所述完整图形的面积内进行图形绘制,具体为:
所述生成模块根据所述原始图像、所述基础图形以及与所述发生变化的图形链相关联的图形绘制所述待绘制图像。
在具体的应用场景中,当所述待绘制图像为所述原始图像在添加所述基础图形后的图像时,所述确定模块根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链,具体为:
所述确定模块根据所述基础图形的位置信息判断所述基础图形是否与所述待绘制图像中的其他图形相交;
若所述基础图形与所述待绘制图像中的其他图形不相交,所述确定模块根据所述基础图形生成新图形链,并将所述新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;
若所述基础图形与所述待绘制图像中的其他图形相交,所述确定模块根据所述基础图形以及包含所述其他图形的节点标识的图形链生成新图形链,并将所述新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
在具体的应用场景中,根据所述基础图形以及包含所述其他图形的节点标识的图形链生成新图形链,具体为:
将所述基础图形的节点标识分别插入当前与所述基础图形相交的其他图形所对应的图形链;
判断所述基础图形是否同时与所述原始图像中的多个其他图形相交;
若所述基础图形同时与所述原始图像中的多个其他图形相交,将当前包含所述基础图形的节点标识的图形链进行合并连接,并将合并连接后的图形链作为所述新图形链;
若所述基础图形仅与所述原始图像中的一个其他图形相交,将当前包含所述基础图形的节点标识的图形链作为所述新图形链。
在具体的应用场景中,当所述待绘制图像为所述原始图像在删除所述基础图形后的图像时,所述确定模块根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链,具体为:
所述确定模块判断所述图形链在删除所述基础图形的节点标识后是否断裂为多个图形链;
若所述图形链在删除所述节点标识后未断裂为多个图形链,所述确定模块将删除了所述节点标识后的图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;
若所述图形链在删除所述节点标识后断裂为多个图形链,且所述多个图形链直接无法合并连接,所述确定模块将所述多个图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链;
若所述图形链在删除所述节点标识后断裂为多个图形链,且所述多个图形链能够合并连接,所述确定模块将所述多个图形链合并连接后的新图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
在具体的应用场景中,当所述待绘制图像为所述原始图像中的基础图形在位移或形变后的图像时,所述确定模块根据所述图形链与所述基础图形的位置信息确定待绘制图像相对于所述原始图像发生变化的图形链,具体为:
根据包含所述基础图形的节点标识的图形链以及所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形之间相交关系生成第一图形链;
根据所述第一图形链以及所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形之间相交关系生成第二图形链,并将所述第二图形链作为所述待绘制图像相对于所述原始图像发生变化的图形链。
在具体的应用场景中,所述确定模块根据包含所述基础图形的节点标识的图形链以及所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形之间相交关系生成第一图形链,具体为:
判断所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形是否仍然相交;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形仍然相交,所述确定模块将所述图形链作为所述第一图形链;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且图形链在删除所述节点标识后未断裂为多个图形链,所述确定模块将删除了所述节点标识后的图形链作为所述第一图形链;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且所述图形链在删除所述节点标识后断裂为多个无法合并连接的图形链,所述确定模块将所述多个图形链作为所述第一图形链;
若所述基础图形在位移或形变后与所述原始图像中当前已相交的其他图形不再相交,且所述图形链在删除所述节点标识后断裂为多个能够合并连接的图形链,所述确定模块将所述多个图形链合并连接后的新图形链作为所述第一图形链。
在具体的应用场景中,所述确定模块根据所述第一图形链以及所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形之间相交关系生成第二图形链,具体为:
判断所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形是否相交;
若所述基础图形在位移或形变后与所述原始图像中当前未相交的其他图形相交,所述确定模块根据所述基础图形、所述第一图形链以及包含所述其他图形的节点标识的图形链生成所述第二图形链;
若所述基础图形在位移或形变后仍不与所述原始图像中当前未相交的其他图形相交,所述确定模块根据所述基础图形以及所述第一图形链生成所述第二图形链。
在具体的应用场景中,所述确定模块根据所述基础图形、所述第一图形链以及包含所述其他图形的节点标识的图形链生成所述第二图形链,具体为:
将所述第一图形链分别插入与所述其他图形对应的图形链;
判断所述其他图形的数量是否大于一;
若所述其他图形的数量大于一,所述确定模块将当前包含所述基础图形的节点标识的图形链进行合并连接,并将合并连接后的图形链作为所述第二图形链;
若所述其他图形的数量仅为一,所述确定模块将当前包含所述基础图形的节点标识的图形链作为所述第二图形链。
在具体的应用场景中,所述生成模块根据所述原始图像、所述基础图形以及与所述发生变化的图形链相关联的图形绘制所述待绘制图像,具体为:
将所述基础图形以及与所述发生变化的图形链相关联的图形作为待擦除图形;
确定与所述待擦除图形对应的最小包围多边形;
将所述最小包围多边形进行擦除,并根据所述基础图形位移或形变后各所述待擦除图形的位置绘制所述待绘制图像。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。