图形绘制方法、装置以及存储介质与流程

文档序号:17446031发布日期:2019-04-17 05:37阅读:181来源:国知局
图形绘制方法、装置以及存储介质与流程

本发明涉及计算机绘图领域,具体涉及一种图形绘制方法、装置以及存储介质。



背景技术:

动态绘图技术已在多个领域得到广泛应用,通过使用动态绘图,用户在视图界面前台看到的图形是动态渐渐呈现的,例如,动态绘制正弦曲线和动态绘制游戏过程中的人物行走轨迹等。目前的终端设备在动态绘制过程中,是在画布上每隔指定的时间间隔,重新画一个新的图像,并用新的图像替换原先的图像,新的图像所采用的绘图的数据量要比原先图像多,所以,随着每隔指定的时间间隔,新的图像不断替换原先图像,视觉上就会产生图形动态生成的效果。在动态绘制过程前期需要绘制的数据量较少,能够在指定的时间间隔内完成绘制;但是随着动态绘制过程的进行,需要绘制的数据量越来越多,请求获取数据的时间越来越长,导致绘图速度越来越慢,有可能在指定的时间间隔内完不成应该绘制的图形,则会导致视觉上产生图形闪烁的问题。



技术实现要素:

本发明的主要目的为提供一种图形绘制方法、装置以及存储介质,以解决在动态绘制过程中,由于向服务器获取数据量大而造成的绘图速度慢,进而导致的闪屏问题。

本发明提出一种图形绘制方法,用于在视图界面进行图形绘制,所述视图界面的前台和后台分别有一张画布,当前所述视图界面的后台画布为第一画布,当前所述视图界面的前台画布为第二画布,所述图形绘制方法包括:

获取绘制图形的绘制指令;

根据所述绘制指令从指定服务器中获取第一数据,其中,所述第一数据包括不多于预设数量的第一绘图点的坐标值;

将所述第一数据合并至本地数据库内的预存数据中,生成第二数据,其中,所述预存数据包括预存的多个第二绘图点的坐标值;

根据所述第二数据在所述第一画布上绘制第一图形,生成第一绘制画布;

判断是否接收到切换画布的切换指令;

若是,则将所述第一绘制画布切换至所述视图界面的前台,获得更新后的前台画布。

进一步地,所述若是,则将所述第一绘制画布切换至所述视图界面的前台,获得更新后的前台画布的步骤后,还包括:

将所述第二画布切换至所述视图界面的后台;

清空所述第二画布上所绘制的第二图形,获得更新后的后台画布,其中,所述第二图形为由所述预存数据绘制形成的图形。

进一步地,所述清空所述第二画布上所绘制的第二图形,获得更新后的后台画布的步骤后,包括:

判断所述第一数据中所述第一绘图点的数量是否等于所述预设数量;

若是,则生成所述绘制指令。

进一步地,所述将所述第一数据合并至本地数据库内的预存数据中,生成第二数据的步骤后,还包括:

将所述第二数据保存至所述本地数据库内,生成更新的预存数据。

进一步地,所述判断所述第一数据中所述第一绘图点的数量是否等于所述预设数量的步骤后,还包括:

若否,则清空所述更新的预存数据。

进一步地,所述获取绘制图形的绘制指令的步骤前,包括:

在所述视图界面的后台创建第一初始画布,以及在所述视图界面的前台创建第二初始画布;

在监测到预设触发操作时,生成所述绘制指令。

进一步地,所述在所述视图界面的后台创建第一初始画布,以及在所述视图界面的前台创建第二初始画布的步骤,包括:

获取各指定参数对应的第一属性值;

根据全部所述指定参数分别对应的第一属性值在所述视图界面的后台创建所述第一初始画布;

设置各所述指定参数对应的第二属性值,使得各所述指定参数对应的第二属性值与各所述指定参数对应的第一属性值相等;

根据全部所述指定参数分别对应的第二属性值在所述视图界面的前台创建所述第二初始画布。

本发明还提出了一种图形绘制装置,用于在视图界面进行图形绘制,所述视图界面的前台和后台分别有一张画布,当前所述视图界面的后台画布为第一画布,当前所述视图界面的前台画布为第二画布,所述图形绘制装置包括:

指令获取单元,用于获取绘制图形的绘制指令;

数据获取单元,用于根据所述绘制指令从指定服务器中获取第一数据,其中,所述第一数据包括不多于预设数量的第一绘图点的坐标值;

数据合并单元,用于将所述第一数据合并至本地数据库内的预存数据中,生成第二数据,其中,所述预存数据包括预存的多个第二绘图点的坐标值;

后台绘制单元,用于根据所述第二数据在所述第一画布上绘制第一图形,生成第一绘制画布;

第一判断单元,用于判断是否接收到切换画布的切换指令;

第一切换单元,用于若接收到所述切换指令,则将所述第一绘制画布切换至所述视图界面的前台,获得更新后的前台画布。

进一步地,所述图形绘制装置还包括:

第二切换单元,用于将所述第二画布切换至所述视图界面的后台;

画布清空单元,用于清空所述第二画布上所绘制的第二图形,获得更新后的后台画布,其中,所述第二图形为由所述预存数据绘制形成的图形。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的图形绘制方法。

本发明的有益效果:

本发明的图形绘制方法、装置以及存储介质,在获取绘制图形的绘制指令后,获取第一数据,再将第一数据和本地数据库内的预存数据合并,获得第二数据,根据第二数据在当前后台的第一画布上进行绘制,由于第一数据中包括的第一绘图点不多于预设数量,因此每次获取第一数据所需的时间很短,有效加快了图形绘制速度,保证能够在接收到切换指令之前在当前后台的第一画布上完成绘制,生成第一绘制画布,在接收到切换指令后,将第一绘制画布切换至视图界面前台进行显示,保证了动态绘图过程中用户在视图界面前台进行观看的视觉连贯性,避免闪屏现象,提高用户体验。

附图说明

图1是本发明一实施例的图形绘制方法的流程示意图;

图2是本发明又一实施例的图形绘制方法的流程示意图;

图3是本发明图形绘制装置一实施例的结构示意图;

图4是本发明图像绘制装置又一实施例的结构示意图;

图5是本发明图像绘制装置又一实施例的结构示意图;

图6是本发明图像绘制装置又一实施例的结构示意图;

图7是本发明图像绘制装置又一实施例的结构示意图;

图8是本发明图7中创建单元的结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明实施例提供的一种图形绘制方法,该方法可以由图形绘制装置来执行,所述图形绘制装置具体可以通过软件或硬件的形式实现,并一般可集成于终端设备(如智能手机、平板电脑、液晶显示器等)中。

参照图1,提出本发明一实施例的图形绘制方法,用于在视图界面进行图形绘制,所述视图界面的前台和后台分别有一张画布,当前所述视图界面的后台画布为第一画布,当前所述视图界面的前台画布为第二画布,所述图形绘制方法包括:

s1、获取绘制图形的绘制指令;

s2、根据所述绘制指令从指定服务器中获取第一数据,其中,所述第一数据包括不多于预设数量的第一绘图点的坐标值;

s3、将所述第一数据合并至本地数据库内的预存数据中,生成第二数据,其中,所述预存数据包括预存的多个第二绘图点的坐标值;

s4、根据所述第二数据在所述第一画布上绘制第一图形,生成第一绘制画布;

s5、判断是否接收到切换画布的切换指令;

s6、若是,则将所述第一绘制画布切换至所述视图界面的前台,获得更新后的前台画布。

本实施例中,上述视图界面指的是用于绘制图形的应用程序界面,可以单独运行,应用程序可以在终端设备上运行,终端设备包括如智能手机、平板电脑、液晶显示器等。上述视图界面的前台画布指的是在图形绘制过程中,当前呈现于应用程序界面的前台的画布;上述视图界面的后台画布指的是在图形绘制过程中,当前呈现于应用程序的后台的画布。当用户切入到视图界面时,上述视图界面的前台画布对用户可见,而上述视图界面的后台画布对用户不可见。

上述步骤s1中,上述绘制指令指的是触发终端设备进行图形绘制的指令。上述绘制指令包括在图形绘制之前触发终端设备开始图形绘制的指令,如用户通过选择开始选项发送绘制指令,或通过晃动手机、语音控制、预设启动动作等方式发送绘制指令;上述绘制指令也包括在图形绘制过程中触发终端设备循环多次进行图形绘制的指令,如在图形绘制过程中,设置了预设触发事件,如每隔指定时长进行再次绘制等。

在上述步骤s2中,上述指定服务器中存储了用于图形绘制的绘图数据,这些绘图数据由其它程序上传至指定服务器中,例如,用户在游戏过程中,人物走动的路径会生成路径相关的数据,这些路径相关的数据被上传至上述指定服务器中;这些绘图数据在指定服务器中按照获得数据的时间先后顺序进行排序,例如,用户在游戏过程中,人物走动的路径所产生的数据,会在指定服务器中按照时间顺序排列,排序靠前的数据体现的人物早期走动的路径,排序靠后的数据体现的是人物近期走动的路径。上述坐标值用于体现各第一绘图点的位置,例如,用户在游戏过程中,人物走动的路径中指定点的位置坐标,该位置坐标是人物所在环境的位置坐标。

上述预设数量可以根据具体使用情况进行设置。上述第一绘图点指的是终端设备根据绘制指令每次在步骤s2新获取的绘图点。终端设备在接收到上述步骤s1的绘制指令后,向指定服务器发送获取数据的指令,该获取数据的指令中包括获取预设数量的第一绘图点的坐标值;指定服务器接收到获取数据的指令后,按照预设规则提取第一数据,并将提取出来的第一数据发送给终端设备。提取第一数据的预设规则指的是,指定服务器内的数据依序排列,且指定服务器内记录了上一次被提取的最后一个绘图点a,本次提取数据从绘图点a后的第一个绘图点开始,依序提取预设数量个绘图点的坐标值作为第一数据;如果从绘图点a后的第一个绘图点开始,能够依序提取的绘图点的坐标值小于预设数量,则将能够依序提取的绘图点的坐标值全部提取作为第一数据。例如,预设数量设置为10个,在指定服务器中存储了98个绘图点的坐标值,则指定服务器接收到获取数据的指令后,首先查找上一次被提取的最后一个绘图点,假设上一次被提取的最后一个绘图点为第20个,则本次提取第21个~第30个绘图点的坐标值作为第一数据,并发送至终端设备;假设上一次被提取的最后一个绘图点为第90个,则本次发送第91个~第98个绘图点的坐标值作为第一数据,并发送至终端设备。

优选地,指定服务器中还可以保存每一个绘图点对应的变量值,指定服务器在提取数据时,可以将预设数量的第一绘图点的坐标值和各所述第一绘图点对应的变量值一并提取,并发送至终端设备。上述变量值可以用于描述绘图点的颜色、大小、绘图点之间的连接线的形状、粗细、颜色等。变量值的具体设置可以根据用户需要来进行设置。

在上述步骤s3中,预存数据是指在本次绘制图形时,本地数据库中已经存有的数据。上述将第一数据合作并至本地数据库内的预存数据中,是指将第一数据依序排列在预存数据的最末一个绘图点后。上述第二数据指的是合并后的数据,包括了依序排列的预存数据和依序排列在预存数据后的第一数据。上述预存数据包括预存的多个第二绘图点的坐标值。具体地,预存数据指的是在本次完成图形绘制后,保存在本地数据库内的第二数据;这些第二数据在下一次进行图形绘制时,即成为本地数据库内的预存数据。

在上述步骤s4中,上述根据所述第二数据在所述第一画布上绘制第一图形,生成第一绘制画布的步骤包括:

将各所述第二绘图点的坐标值按照预设比例转化为对应于所述第一画布的各所述第二绘图点的画布坐标值,其中,第二绘图点的坐标值指的是实际坐标值(如经纬度),第二绘图点的画布坐标值指的是在第一画布上的画布坐标值,预设比例指的是画布坐标值与实际坐标值之间的比例,如用户在游戏过程中,人物走动的路径中的指定点在实际环境中的经纬度为实际坐标值时,则预设比例为画布上的两点间距与人物在实际环境中的两点间距的比例尺;

根据各所述第二绘图点的画布坐标值在所述第一画布上绘制第一图形,生成第一绘制画布,其中,第一图形指的是对应于各第二绘图点的画布坐标值所形成的图形,还可以包括各第二绘图点对应的变量值形成能够体现颜色、形状等的图形,上述第一绘制画布指的是绘制完第一图形之后的第一画布。优选地,对各第二绘图点设置对应的变量值,所绘制的第一图形可以满足用户多样化的绘制需求,并提供更好的视觉体验,例如,绘制正弦曲线时,连接绘图点的线条的颜色默认为黑色,线条的绘制点也默认为黑色,为了突出显示指定的第二绘图点所在位置,可以通过变量值设置指定的第二绘制点为红色。

在上述步骤s5中,上述切换指令指的是终端设备接收的用于将当前在视图界面后台的画布切换至视图界面前台的指令。上述切换指令可以是当满足预设触发事件时,自动触发切换指令。例如,从终端设备获取绘制指令开始计时,当达到预设时长时,则判定满足预设触发事件,则生成切换画布的切换指令。预设时长可以根据实际使用需要具体设置,要以人眼直观感觉画面的切换是连续的不会感受到一帧一帧的停顿为宜,如一般设置为0.1~0.2s,预设时长不能过长,否则会造成动画绘图过程中的画面停顿感较强,因此要保证动态绘图过程中画面的连续感,需要在预设时长内要完成向指定服务器请求数据以及根据数据绘制图形。

在上述步骤s6中,接收到上述切换指令后,将当前在视图界面后台的第一绘制画布切换到视图界面前台,此时可以在视图界面前台看到第一绘制画布上所绘制的第一图形。此时,上述更新后的前台画布即指的是切换到视图界面前台的第一绘制画布。如果需要多次绘制,则在视图界面的后台生成新的空白画布,继续在新的空白画布上进行绘制,接收到切换指令后,后台画布再继续覆盖前台画布;从用户的观看角度来看,就是前台的画布图像一致在变化,画布的图像每次变化都新增一些数据点,则类似动画播放的原理,画布替换速度够快,则用户感觉前台画布的图像是平滑连贯动态变化的,没有明显的停顿、闪屏现象。

本实施例的图形绘制方法,在获取绘制图形的绘制指令后,获取第一数据,再将第一数据和本地数据库内的预存数据合并,获得第二数据,根据第二数据在当前后台的第一画布上进行绘制,由于第一数据包括的第一绘图点不多于预设数量,因此每次获取第一数据所需的时间很短,有效加快了图形绘制速度,保证能够在接收到切换指令之前在当前后台的第一画布上完成绘制,生成第一绘制画布,在接收到切换指令后,将第一绘制画布切换至视图界面前台进行显示,保证了动态绘图过程中用户在视图界面前台进行观看的视觉连贯性,避免闪屏现象,提高用户体验。

参照图2,提出本发明又一实施例的图形绘制方法,所述若是,则将所述第一绘制画布切换至所述视图界面的前台,获得更新后的前台画布的步骤s6后还包括:

s7、将所述第二画布切换至所述视图界面的后台;

s8、清空所述第二画布上所绘制的第二图形,获得更新后的后台画布,其中,所述第二图形为由所述预存数据绘制形成的图形。

在上述步骤s7~s8中,将原先在视图界面前台的第二画布切换至视图界面的后台。上述第二图形指的是第二画布上所绘制的图形,由本地数据库内存储的所有第二绘图点的坐标值绘制形成。清空第二图形后,第二画布成了空白画布,即上述更新后的后台画布为步骤s8实施后当前位于后台的空白画布。这样使得在下一次获得绘制指令时,能够将新获得的数据直接在空白的上述更新后的后台画布上重新绘制图形。

进一步地,提出本发明又一实施例的图形绘制方法,上述清空所述第二画布上所绘制的第二图形,获得更新后的后台画布的步骤s8后,还包括:

s9、判断所述第一数据中所述第一绘图点的数量是否等于所述预设数量;

s10、若是,则生成所述绘制指令。

在上述步骤s9~s10中,在完成本次图形绘制之后,通过对本次图形绘制过程中步骤s2中获得的第一绘图点的数量是否等于上述预设数量进行判断,来判定是否要生成绘制指令。当步骤s2中获得的第一绘图点的数量等于上述预设数量,则表明指定服务器中还有绘图点可以提供,例如,预设数量设置为10个,终端设备向指定服务器要求获取10个第一绘图点,如果从指定服务器端接收到10个第一绘图点,则表明指定服务器内还有未绘制的绘图点,因此生成上述绘制指令,使得终端设备再继续绘制;当步骤s2中获得的第一绘图点的数量不等于上述预设数量,本实施例中只会小于上述预设数量,则表明指定服务器中已经没有绘图点可以提供,例如,预设数量设置为10个,终端设备向指定服务器要求获取10个第一绘图点,如果从指定服务器端只接收到8个第一绘图点,则表明指定服务器在发送完这8个第一绘图点的数据后,指定服务器内没有未绘制的绘图点了,则不再生成绘制指令,结束绘制。

进一步地,上述将所述第一数据合并至本地数据库内的预存数据中,生成第二数据的步骤s3后,还包括:

s11、将所述第二数据保存至所述本地数据库内,生成更新的预存数据。

在上述步骤中,将本次图形绘制过程中获取的第二数据保存至本地数据库中,以便在下一次进行图形绘制时,可将获取到的第一数据与更新的预存数据合并。例如,指定服务器内有10000个绘图点,预设数量设置为10个,这样终端设备在第500次进行图形绘制时,仍然只需向服务器请求10个绘图点,将这10个绘图点加在原先保存在本地数据库中的490个绘图点后面,获得包括500个绘图点的第二数据,将这包括500个绘图点的第二数据存储在本地数据库中,作为更新的预存数据,在第501次进行图形绘制时,作为本地数据库内的预存数据被调用。这样每次只需向服务器请求获取预设数量的绘图点的数据,大大减少了获取数据时间,加快图形绘制的速度。

进一步地,上述判断所述第一数据中所述第一绘图点的数量是否等于所述预设数量的步骤s9后,还包括:

s12、若否,则清空所述更新的预存数据。

上述步骤s12中,当步骤s2中获得的第一绘图点的数量不等于上述预设数量,本实施例中只会小于上述预设数量,则表明指定服务器中已经没有绘图点可以提供,应该结束图形绘制。则将上述更新的预存数据清空,以便于在下一次开始全新的绘制时(并非绘制过程中的多次绘制循环,而是已经完成了对服务器内的绘图点的绘制后,重新开始绘制别的图形),不需要先在第一个图形绘制循环时判断服务器内是否有无关数据,加快了图形绘制速度,减少了绘图出错的可能性。

进一步地,上述获取绘制图形的绘制指令的步骤s1前,还包括:

s01、在所述视图界面的后台创建第一初始画布,以及在所述视图界面的前台创建第二初始画布;

s02、在监测到预设触发操作时,生成所述绘制指令。

上述步骤s01用于在开始图形绘制之前首先在视图界面创建两张画布,一张画布设置于视图界面的前台,一张画布设置于视图界面的后台。上述第一初始画布指的是新建的位于视图界面后台的画布,上述第二初始画布指的是新建的位于视图界面后台的画布。

上述步骤s02中,上述预设触发操作指的是触发生成绘制指令的操作,如上述预设触发操作包括,用户选择开始选项,或用户晃动手机、说出指定控制语音、用户做出预设启动动作等方式。当终端设备监测到上述预设触发操作时,则生成绘制指令,开始图形绘制。

进一步地,上述在所述视图界面的后台创建第一初始画布,以及在所述视图界面的前台创建第二初始画布的步骤s01中,还包括:

s011、获取各指定参数对应的第一属性值;

s012、根据全部所述指定参数分别对应的第一属性值在所述视图界面的后台创建所述第一初始画布;

s013、设置各所述指定参数对应的第二属性值,使得各所述指定参数对应的第二属性值与各所述指定参数对应的第一属性值相等;

s014、根据全部所述指定参数分别对应的第二属性值在所述视图界面的前台创建所述第二初始画布。

在上述步骤s011~s012中,上述指定参数包括高度、宽度、背景颜色等,上述第一属性值指的是高度数值、宽度数值、背景颜色rgb值等。第一属性值根据待绘制图形的大小以及绘制需求来设置。第一属性值可以由用户在视图界面的指定输入框中输入来获取,也可以是通过调用预设值来获取。终端设备获取第一属性值后,根据指定参数的第一属性值在视图界面的后台创建第一初始画布。

在上述步骤s013~s014中,第二属性值与第一属性值相等,如第二属性值中的高度数值与第一属性值中的高度数值一致,第二属性值中的背景颜色rgb值与第一属性值中的背景颜色rgb值一致等。根据指定参数对应的第二属性值在视图界面的前台创建第二初始画布。这样使得一开始在视图界面前台和后台创建的画布从外观上来看是一致的,在后面图形绘制过程中进行画布切换时,只需要关注绘图点的绘制,而不需要再对画布进行尺寸或颜色的调整,减少了图形绘制过程中的计算量。根据本发明实施例的发明构思,也可以先创建第二初始画布,再创建第一初始画布;也可以第一初始画布和第二初始画布同时进行创建。

参照图3,提出本发明一实施例的图形绘制装置,用于在视图界面进行图形绘制,所述视图界面的前台和后台分别有一张画布,当前所述视图界面的后台画布为第一画布,当前所述视图界面的前台画布为第二画布,所述图形绘制装置包括:

指令获取单元10,用于获取绘制图形的绘制指令;

数据获取单元20,用于根据所述绘制指令从指定服务器中获取第一数据,其中,所述第一数据包括不多于预设数量的第一绘图点的坐标值;

数据合并单元30,用于将所述第一数据合并至本地数据库内的预存数据中,生成第二数据,其中,所述预存数据包括预存的多个第二绘图点的坐标值;

后台绘制单元40,用于根据所述第二数据在所述第一画布上绘制第一图形,生成第一绘制画布;

第一判断单元50,用于判断是否接收到切换画布的切换指令;

第一切换单元60,用于若接收到所述切换指令,将所述第一绘制画布切换至所述视图界面的前台,获得更新后的前台画布。

本实施例中,上述视图界面指的是用于绘制图形的应用程序界面,可以单独运行,应用程序可以在终端设备上运行,终端设备包括如智能手机、平板电脑、液晶显示器等。上述视图界面的前台画布指的是在图形绘制过程中,当前呈现于应用程序界面的前台的画布;上述视图界面的后台画布指的是在图形绘制过程中,当前呈现于应用程序的后台的画布。当用户切入到视图界面时,上述视图界面的前台画布对用户可见,而上述视图界面的后台画布对用户不可见。

上述指令获取单元10中,上述绘制指令指的是触发终端设备进行图形绘制的指令。上述绘制指令包括在图形绘制之前触发终端设备开始图形绘制的指令,如用户通过选择开始选项发送绘制指令,或通过晃动手机、语音控制、预设启动动作等方式发送绘制指令;上述绘制指令也包括在图形绘制过程中触发终端设备循环多次进行图形绘制的指令,如在图形绘制过程中,设置了预设触发事件,如每隔指定时长进行再次绘制等。

在上述数据获取单元20中,上述指定服务器中存储了用于图形绘制的绘图数据,这些绘图数据由其它程序上传至指定服务器中,例如,用户在游戏过程中,人物走动的路径会生成路径相关的数据,这些路径相关的数据被上传至上述指定服务器中;这些绘图数据在指定服务器中按照获得数据的时间先后顺序进行排序,例如,用户在游戏过程中,人物走动的路径所产生的数据,会在指定服务器中按照时间顺序排列,排序靠前的数据体现的人物早期走动的路径,排序靠后的数据体现的是人物近期走动的路径。上述坐标值用于体现各第一绘图点的位置,例如,用户在游戏过程中,人物走动的路径中指定点的位置坐标,该位置坐标是人物所在环境的位置坐标。

上述预设数量可以根据具体使用情况进行设置。上述第一绘图点指的是终端设备根据绘制指令每次通过数据获取单元20新获取的绘图点。终端设备在接收到上述指令获取单元10获取的绘制指令后,向指定服务器发送获取数据的指令,该获取数据的指令中包括获取预设数量的第一绘图点的坐标值;指定服务器接收到获取数据的指令后,按照预设规则提取第一数据,并将提取出来的第一数据通过数据获取单元20发送给终端设备。提取第一数据的预设规则指的是,指定服务器内的数据依序排列,且指定服务器内记录了上一次被提取的最后一个绘图点a,本次提取数据从绘图点a后的第一个绘图点开始,依序提取预设数量个绘图点的坐标值作为第一数据;如果从绘图点a后的第一个绘图点开始,能够依序提取的绘图点的坐标值小于预设数量,则将能够依序提取的绘图点的坐标值全部提取作为第一数据。例如,预设数量设置为10个,在指定服务器中存储了98个绘图点的坐标值,则指定服务器接收到获取数据的指令后,首先查找上一次被提取的最后一个绘图点,假设上一次被提取的最后一个绘图点为第20个,则本次提取第21个~第30个绘图点的坐标值作为第一数据,并发送至终端设备;假设上一次被提取的最后一个绘图点为第90个,则本次发送第91个~第98个绘图点的坐标值作为第一数据,并发送至终端设备。

优选地,指定服务器中还可以保存每一个绘图点对应的变量值,指定服务器在提取数据时,可以将预设数量的第一绘图点的坐标值和各所述第一绘图点对应的变量值一并提取,并发送至终端设备,终端设备通过数据获取单元20一并获取对应的变量值。上述变量值可以用于描述绘图点的颜色、大小、绘图点之间的连接线的形状、粗细、颜色等。变量值的具体设置可以根据用户需要来进行设置。

在上述数据合并单元30中,预存数据是指在本次绘制图形时,本地数据库中已经存有的数据。上述将第一数据合作并至本地数据库的预存数据中,是指通过数据合并单元30将第一数据依序排列在预存数据的最末一个绘图点后。上述第二数据指的是合并后的数据,包括了依序排列的预存数据和依序排列在预存数据后的第一数据。上述预存数据包括预存的多个第二绘图点的坐标值。具体地,预存数据指的是在本次完成图形绘制后,保存在本地数据库内的第二数据;这些第二数据在下一次进行图形绘制时,即成为本地数据库内的预存数据。

在上述后台绘制单元40中,通过后台绘制单元40生成第一绘制画布的步骤包括:

将各所述第二绘图点的坐标值按照预设比例转化为对应于所述第一画布的各所述第二绘图点的画布坐标值,其中,第二绘图点的坐标值指的是实际坐标值(如经纬度),第二绘图点的画布坐标值指的是在第一画布上的画布坐标值,预设比例指的是画布坐标值与实际坐标值之间的比例,如用户在游戏过程中,人物走动的路径中的指定点在实际环境中的经纬度为实际坐标值时,则预设比例为画布上的两点间距与人物在实际环境中的两点间距的比例尺;

根据各所述第二绘图点的画布坐标值在所述第一画布上绘制第一图形,生成第一绘制画布,其中,第一图形指的是对应于各第二绘图点的画布坐标值所形成的图形,还可以包括各第二绘图点对应的变量值形成能够体现颜色、形状等的图形,上述第一绘制画布指的是绘制完第一图形之后的第一画布。优选地,对各第二绘图点设置对应的变量值,所绘制的第一图形可以满足用户多样化的绘制需求,并提供更好的视觉体验,例如,绘制正弦曲线时,连接绘图点的线条的颜色默认为黑色,线条的绘制点也默认为黑色,为了突出显示指定的第二绘图点所在位置,可以通过变量值设置指定的第二绘制点为红色。

在上述第一判断单元50中,上述切换指令指的是终端设备接收的用于将当前在视图界面后台的画布切换至视图界面前台的指令。上述切换指令可以是当满足预设触发事件时,自动触发切换指令。例如,从终端设备获取绘制指令开始计时,当达到预设时长时,则通过第一判断单元50判定满足预设触发事件,则生成切换画布的切换指令。预设时长可以根据实际使用需要具体设置,要以人眼直观感觉画面的切换是连续的不会感受到一帧一帧的停顿为宜,如一般设置为0.1~0.2s,预设时长不能过长,否则会造成动画绘图过程中的画面停顿感较强,因此要保证动态绘图过程中画面的连续感,需要在预设时长内要完成向指定服务器请求数据以及根据数据绘制图形。

在上述第一切换单元60中,接收到上述切换指令后,将当前在视图界面后台的第一绘制画布通过第一切换单元60切换到视图界面前台,此时可以在视图界面前台看到第一绘制画布上所绘制的第一图形。此时,上述更新后的前台画布即指的是切换到视图界面前台的第一绘制画布。如果需要多次绘制,则在视图界面的后台生成新的空白画布,继续在新的空白画布上进行绘制,接收到切换指令后,后台画布再继续覆盖前台画布;从用户的观看角度来看,就是前台的画布图像一致在变化,画布的图像每次变化都新增一些数据点,则类似动画播放的原理,画布替换速度够快,则用户感觉前台画布的图像是平滑连贯动态变化的,没有明显的停顿、闪屏现象。

本实施例的图形绘制装置,在获取绘制图形的绘制指令后,获取第一数据,再将第一数据和本地数据库内的预存数据合并,获得第二数据,根据第二数据在当前后台的第一画布上进行绘制,由于第一数据包括的第一绘图点不多于预设数量,因此每次获取第一数据所需的时间很短,有效加快了图形绘制速度,保证能够在接收到切换指令之前在当前后台的第一画布上完成绘制,生成第一绘制画布,在接收到切换指令后,将第一绘制画布切换至视图界面前台进行显示,保证了动态绘图过程中用户在视图界面前台进行观看的视觉连贯性,避免闪屏现象,提高用户体验。

参照图4,提出本发明又一实施例的图形绘制装置,上述图形绘制装置还包括:

第二切换单元70,用于将所述第二画布切换至所述视图界面的后台;

画布清空单元80,用于清空所述第二画布上所绘制的第二图形,获得更新后的后台画布,其中,所述第二图形为由所述预存数据绘制形成的图形。

在上述第二切换单元70和画布清空单元80中,将原先在视图界面前台的第二画布通过上述第二切换单元70切换至视图界面的后台。上述第二图形指的是第二画布上所绘制的图形,由本地数据库内存储的所有第二绘图点的坐标值绘制形成。清空第二图形后,第二画布成了空白画布,即上述更新后的后台画布为通过画布清空单元80清空第二图形后得到的当前位于后台的空白画布。这样使得在下一次获得绘制指令时,能够将新获得的数据直接在空白的上述更新后的后台画布上重新绘制图形。

参照图5,提出本发明又一实施例的图形绘制装置,上述图形绘制装置还包括:

第二判断单元90,用于判断所述第一数据中所述第一绘图点的数量是否等于所述预设数量;

若等于所述预设数量,则生成上述指令获取单元10的所述绘制指令。

在上述第二判断单元90中,在完成本次图形绘制之后,通过对本次图形绘制过程中数据获取单元20中获得的第一绘图点的数量是否等于上述预设数量通过第二判断单元90进行判断,来判定是否要生成绘制指令。当数据获取单元20中获得的第一绘图点的数量等于上述预设数量,则表明指定服务器中还有绘图点可以提供,例如,预设数量设置为10个,终端设备向指定服务器要求获取10个第一绘图点,如果从指定服务器端接收到10个第一绘图点,则表明指定服务器内还有未绘制的绘图点,因此生成上述指令获取单元10的上述绘制指令,使得终端设备再通过数据获取单元20继续绘制;当数据获取单元20中获得的第一绘图点的数量不等于上述预设数量,本实施例中只会小于上述预设数量,则表明指定服务器中已经没有绘图点可以提供,例如,预设数量设置为10个,终端设备向指定服务器要求获取10个第一绘图点,如果从指定服务器端只接收到8个第一绘图点,则表明指定服务器在发送完这8个第一绘图点的数据后,指定服务器内没有未绘制的绘图点了,则不再生成绘制指令,结束绘制。

参照图6,提出本发明又一实施例的图形绘制装置,上述图形绘制装置还包括:

数据保存单元110,用于将所述第二数据保存至所述本地数据库内,生成更新的预存数据。

在上述数据保存单元110中,将本次图形绘制过程中获取的第二数据通过数据保存单元110保存至本地数据库中,以便在下一次进行图形绘制时,可将获取到的第一数据与更新的预存数据合并。例如,指定服务器内有10000个绘图点,预设数量设置为10个,这样终端设备在第500次进行图形绘制时,仍然只需向服务器请求10个绘图点,将这10个绘图点加在原先保存在本地数据库中的490个绘图点后面,获得包括500个绘图点的第二数据,将这包括500个绘图点的第二数据存储在本地数据库中,作为更新的预存数据,在第501次进行图形绘制时,作为本地数据库内的预存数据被调用。这样每次只需向服务器请求获取预设数量的绘图点的数据,大大减少了获取数据时间,加快图形绘制的速度。

参照图6,提出本发明又一实施例的图形绘制装置,上述图形绘制装置还包括:

数据清空单元120,用于若不等于所述预设数量,则清空所述更新的预存数据。

上述数据清空单元120中,当数据获取单元20中获得的第一绘图点的数量不等于上述预设数量,本实施例中只会小于上述预设数量,则表明指定服务器中已经没有绘图点可以提供,应该结束图形绘制。则通过数据清空单元120将上述更新的预存数据清空,以便于在下一次开始全新的绘制时(并非绘制过程中的多次绘制循环,而是已经完成了对服务器内的绘图点的绘制后,重新开始绘制别的图形),不需要先在第一个图形绘制循环时判断服务器内是否有无关数据,加快了图形绘制速度,减少了绘图出错的可能性。

参照图7,提出本发明又一实施例的图形绘制装置,上述图形绘制装置还包括:

创建单元01,用于在所述视图界面的后台创建第一初始画布,以及在所述视图界面的前台创建第二初始画布;

监测单元02,用于在监测到预设触发操作时,生成所述绘制指令。

上述创建单元01用于在开始图形绘制之前首先通过创建单元01在视图界面创建两张画布,一张画布设置于视图界面的前台,一张画布设置于视图界面的后台。上述第一初始画布指的是新建的位于视图界面后台的画布,上述第二初始画布指的是新建的位于视图界面后台的画布。

上述监测单元02中,上述预设触发操作指的是触发生成绘制指令的操作,如上述预设触发操作包括,用户选择开始选项,或用户晃动手机、说出指定控制语音、用户做出预设启动动作等方式。当终端设备通过检测单元02监测到上述预设触发操作时,则生成上述绘制指令,通过数据获取单元20开始图形绘制。

参照图8,上述创建单元01包括:

第一获取子单元011,用于获取各指定参数对应的第一属性值;

第一创建子单元012,用于根据全部所述指定参数分别对应的第一属性值在所述视图界面的后台创建所述第一初始画布;

第二获取子单元013,用于设置各所述指定参数对应的第二属性值,使得各所述指定参数对应的第二属性值与各所述指定参数对应的第一属性值相等;

第二创建子单元014,用于根据全部所述指定参数分别对应的第二属性值在所述视图界面的前台创建所述第二初始画布。

在上述第一获取子单元011和第一创建子单元012中,上述指定参数包括高度、宽度、背景颜色等,上述第一属性值指的是高度数值、宽度数值、背景颜色rgb值等。第一属性值根据待绘制图形的大小以及绘制需求来设置。第一属性值可以通过第一获取子单元011由用户在视图界面的指定输入框中输入来获取,也可以是通过第一获取子单元011调用预设值来获取。终端设备获取第一属性值后,根据指定参数的第一属性值通过第一创建子单元012在视图界面的后台创建第一初始画布。

在上述第二获取子单元013和第二创建子单元014中,第二属性值与第一属性值相等,如第二属性值中的高度数值与第一属性值中的高度数值一致,第二属性值中的背景颜色rgb值与第一属性值中的背景颜色rgb值一致等。根据第二获取子单元013获取的指定参数对应的第二属性值在视图界面的前台通过第二创建子单元014创建第二初始画布。这样使得一开始在视图界面前台和后台创建的画布从外观上来看是一致的,在后面图形绘制过程中进行画布切换时,只需要关注绘图点的绘制,而不需要再对画布进行尺寸或颜色的调整,减少了图形绘制过程中的计算量。根据本发明实施例的发明构思,也可以先创建第二初始画布,再创建第一初始画布;也可以第一初始画布和第二初始画布同时进行创建。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的图形绘制方法。

本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的图形绘制方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1