发明内容
本发明的主要目的在于提供一种笔画重绘方法,旨在解决现有的书写设备进行笔画重绘操作的耗时较长的技术问题。
为实现上述目的,本发明提供一种笔画重绘方法,所述笔画重绘方法包括:
确定重绘区域以及由多个待重绘数据点组成的待重绘笔画,并判断所述重绘区域是否覆盖全部所述待重绘数据点;
若所述重绘区域未覆盖全部所述待重绘数据点,则遍历多个所述待重绘数据点,以筛选出多个所述待重绘数据点中位于所述重绘区域内的区域内数据点;
添加所述区域内数据点,并将所述区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
可选地,所述区域内数据点包括第一区域内数据点,
所述若所述重绘区域未覆盖全部所述待重绘数据点,则遍历多个所述待重绘数据点,以筛选出多个所述待重绘数据点中位于所述重绘区域内的区域内数据点的步骤包括:
若所述重绘区域未覆盖全部所述待重绘数据点,则沿预设第一坐标方向遍历方向上的所述待重绘数据点,并在检测到第一坐标方向上的所述待重绘数据点中存在第一区域外数据点时,基于所述第一区域外数据点,将第一坐标方向上的所述待重绘数据点分为多个数据点集合;
沿预设第二坐标方向遍历方向上的所述数据点集合,并判断第二坐标方向上的所述数据点集合中是否存在第二区域外数据点;
若第二坐标方向上的所述数据点集合中不存在第二区域外数据点,则在检测到遍历完成全部所述待重绘数据点时,从多个所述数据点集合中筛选出除去所述第一区域外数据点的第一区域内数据点。
可选地,所述区域内数据点还包括第二区域内数据点,
所述判断第二坐标方向上的所述数据点集合中是否存在第二区域外数据点的步骤之后,还包括:
若是,则基于所述第二区域外数据点,将第二坐标方向上的所述数据点集合分为多个数据点子集合;
在检测到遍历完成全部所述待重绘数据点时,从多个所述数据点子集合中筛选出除去所述第二区域外数据点的第二区域内数据点。
可选地,所述添加所述区域内数据点,并将所述区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作的步骤包括:
每添加一所述第一区域内数据点或所述第二区域内数据点,则判断当前内存使用量是否满足预设容量标准;
若当前内存使用量满足预设容量标准,则依次添加下一所述第一区域内数据点或所述第二区域内数据点,直至将全部所述第一区域内数据点或所述第二区域内数据点添加完毕;
将全部所述第一区域内数据点或所述第二区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
可选地,所述判断当前内存使用量是否满足预设容量标准的步骤之后,还包括:
若当前内存使用量不满足预设容量标准,则放弃本次重绘,并记录当前已添加至内存的重绘数据点所对应的内存重绘矩形;
在接收到笔画重绘指令时,基于所述笔画重绘指令确定当前重绘区域,判断所述当前重绘区域是否完全包含所述内存重绘矩形,并在所述当前重绘区域完全包含所述内存重绘矩形时,放弃本次重绘。
可选地,所述判断当前内存剩余容量是否满足预设容量标准的步骤包括:
基于当前内存使用量生成实时使用值,并判断所述实时使用值是否大于预设容量阈值;
若所述实时使用值大于预设容量阈值,则判定当前内存剩余容量不满足预设容量标准;
若所述实时使用值小于或等于预设容量阈值,则判定当前内存剩余容量满足预设容量标准。
可选地,所述判断所述重绘区域是否覆盖全部所述待重绘数据点的步骤包括:
获取所述重绘区域的区域坐标范围与所述待重绘笔画的尺寸坐标范围;
判断所述尺寸坐标范围是否超出所述区域坐标范围;
若所述尺寸坐标范围超出所述区域坐标范围,则判定所述重绘区域未覆盖全部所述待重绘数据点;
若所述尺寸坐标范围未超出所述区域坐标范围,则判定所述重绘区域覆盖全部所述待重绘数据点。
可选地,所述判断所述重绘区域是否覆盖全部所述待重绘数据点的步骤之后,还包括:
若所述重绘区域覆盖全部所述待重绘数据点,则逐一添加每一所述待重绘数据点,直至全部所述待重绘数据点添加完毕;
将全部所述待重绘数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
此外,为实现上述目的,本发明还提供一种笔画重绘装置,所述笔画重绘装置包括:
覆盖判断模块,用于确定重绘区域以及由多个待重绘数据点组成的待重绘笔画,并判断所述重绘区域是否覆盖全部所述待重绘数据点;
遍历筛选模块,用于若所述重绘区域未覆盖全部所述待重绘数据点,则遍历多个所述待重绘数据点,以筛选出多个所述待重绘数据点中位于所述重绘区域内的区域内数据点;
添加渲染模块,用于添加所述区域内数据点,并将所述区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
可选地,所述区域内数据点包括第一区域内数据点,
所述遍历筛选模块包括:
第一方向遍历单元,用于若所述重绘区域未覆盖全部所述待重绘数据点,则沿预设第一坐标方向遍历方向上的所述待重绘数据点,并在检测到第一坐标方向上的所述待重绘数据点中存在第一区域外数据点时,基于所述第一区域外数据点,将第一坐标方向上的所述待重绘数据点分为多个数据点集合;
第二方向遍历单元,用于沿预设第二坐标方向遍历方向上的所述数据点集合,并判断第二坐标方向上的所述数据点集合中是否存在第二区域外数据点;
第一点集筛选单元,用于若第二坐标方向上的所述数据点集合中不存在第二区域外数据点,则在检测到遍历完成全部所述待重绘数据点时,从多个所述数据点集合中筛选出除去所述第一区域外数据点的第一区域内数据点。
可选地,所述区域内数据点还包括第二区域内数据点,
所述遍历筛选模块还包括:
第二点集生成单元,用于若是,则基于所述第二区域外数据点,将第二坐标方向上的所述数据点集合分为多个数据点子集合;
第二点集筛选单元,用于在检测到遍历完成全部所述待重绘数据点时,从多个所述数据点子集合中筛选出除去所述第二区域外数据点的第二区域内数据点。
可选地,所述添加渲染模块包括:
当前容量判断单元,用于每添加一所述第一区域内数据点或所述第二区域内数据点,则判断当前内存使用量是否满足预设容量标准;
区域数据添加单元,用于若当前内存使用量满足预设容量标准,则依次添加下一所述第一区域内数据点或所述第二区域内数据点,直至将全部所述第一区域内数据点或所述第二区域内数据点添加完毕;
数据添加渲染单元,用于将全部所述第一区域内数据点或所述第二区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
可选地,所述添加渲染模块还包括:
内存矩形记录单元,用于若当前内存使用量不满足预设容量标准,则放弃本次重绘,并记录当前已添加至内存的重绘数据点所对应的内存重绘矩形;
重绘放弃单元,用于在接收到笔画重绘指令时,基于所述笔画重绘指令确定当前重绘区域,判断所述当前重绘区域是否完全包含所述内存重绘矩形,并在所述当前重绘区域完全包含所述内存重绘矩形时,放弃本次重绘。
可选地,所述当前容量判断单元还用于:
基于当前内存使用量生成实时使用值,并判断所述实时使用值是否大于预设容量阈值;
若所述实时使用值大于预设容量阈值,则判定当前内存剩余容量不满足预设容量标准;
若所述实时使用值小于或等于预设容量阈值,则判定当前内存剩余容量满足预设容量标准。
可选地,所述覆盖判断模块包括:
坐标范围获取单元,用于获取所述重绘区域的区域坐标范围与所述待重绘笔画的尺寸坐标范围;
坐标范围判断单元,用于判断所述尺寸坐标范围是否超出所述区域坐标范围;
坐标范围判定单元,用于若所述尺寸坐标范围超出所述区域坐标范围,则判定所述重绘区域未覆盖全部所述待重绘数据点;
若所述尺寸坐标范围未超出所述区域坐标范围,则判定所述重绘区域覆盖全部所述待重绘数据点。
可选地,所述笔画重绘装置还包括:
重绘数据添加模块,用于若所述重绘区域覆盖全部所述待重绘数据点,则逐一添加每一所述待重绘数据点,直至全部所述待重绘数据点添加完毕;
将全部所述待重绘数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
此外,为实现上述目的,本发明还提供一种笔画重绘设备,所述笔画重绘设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的笔画重绘程序,所述笔画重绘程序被所述处理器执行时实现如上述的笔画重绘方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有笔画重绘程序,所述笔画重绘程序被处理器执行时实现如上述的笔画重绘方法的步骤。
本发明提供一种笔画重绘方法、设备及计算机可读存储介质。所述笔画重绘方法通过确定重绘区域以及由多个待重绘数据点组成的待重绘笔画,并判断所述重绘区域是否覆盖全部所述待重绘数据点;若所述重绘区域未覆盖全部所述待重绘数据点,则遍历多个所述待重绘数据点,以筛选出多个所述待重绘数据点中位于所述重绘区域内的区域内数据点;添加所述区域内数据点,并将所述区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。通过上述方式,本发明通过判断重绘区域对组成待重绘笔画的待重绘数据点的覆盖情况,使得能够检测到待重绘数据点中有部分数据点不在重绘区域内的情况;通过对待重绘数据点进行遍历,使得能够筛选出待重绘数据点位于重绘区域的数据点,进而对其进行数据添加及渲染操作,避免了对待重绘笔画中区域外数据点的数据添加,减少了书写设备在进行笔画重绘操作时的工作量,大大缩短了书写设备在进行笔画重绘操作时所需的处理时长,从而解决了现有的书写设备进行笔画重绘操作的耗时较长的技术问题。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的笔画重绘设备结构示意图。
本发明实施例笔画重绘设备为带显示屏幕的智能书写设备。
如图1所示,该笔画重绘设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。可选的用户接口1003可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory)。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的笔画重绘设备结构并不构成对笔画重绘设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及笔画重绘程序。
在图1所示的笔画重绘设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的笔画重绘程序,并执行以下操作:
确定重绘区域以及由多个待重绘数据点组成的待重绘笔画,并判断所述重绘区域是否覆盖全部所述待重绘数据点;
若所述重绘区域未覆盖全部所述待重绘数据点,则遍历多个所述待重绘数据点,以筛选出多个所述待重绘数据点中位于所述重绘区域内的区域内数据点;
添加所述区域内数据点,并将所述区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
进一步地,所述区域内数据点包括第一区域内数据点,
所述若所述重绘区域未覆盖全部所述待重绘数据点,则遍历多个所述待重绘数据点,以筛选出多个所述待重绘数据点中位于所述重绘区域内的区域内数据点的步骤包括:
若所述重绘区域未覆盖全部所述待重绘数据点,则沿预设第一坐标方向遍历方向上的所述待重绘数据点,并在检测到第一坐标方向上的所述待重绘数据点中存在第一区域外数据点时,基于所述第一区域外数据点,将第一坐标方向上的所述待重绘数据点分为多个数据点集合;
沿预设第二坐标方向遍历方向上的所述数据点集合,并判断第二坐标方向上的所述数据点集合中是否存在第二区域外数据点;
若第二坐标方向上的所述数据点集合中不存在第二区域外数据点,则在检测到遍历完成全部所述待重绘数据点时,从多个所述数据点集合中筛选出除去所述第一区域外数据点的第一区域内数据点。
进一步地,所述区域内数据点还包括第二区域内数据点,
所述判断第二坐标方向上的所述数据点集合中是否存在第二区域外数据点的步骤之后,处理器1001还可以用于调用存储器1005中存储的笔画重绘程序,并执行以下操作:
若是,则基于所述第二区域外数据点,将第二坐标方向上的所述数据点集合分为多个数据点子集合;
在检测到遍历完成全部所述待重绘数据点时,从多个所述数据点子集合中筛选出除去所述第二区域外数据点的第二区域内数据点。
进一步地,所述添加所述区域内数据点,并将所述区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作的步骤包括:
每添加一所述第一区域内数据点或所述第二区域内数据点,则判断当前内存使用量是否满足预设容量标准;
若当前内存使用量满足预设容量标准,则依次添加下一所述第一区域内数据点或所述第二区域内数据点,直至将全部所述第一区域内数据点或所述第二区域内数据点添加完毕;
将全部所述第一区域内数据点或所述第二区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
进一步地,所述判断当前内存使用量是否满足预设容量标准的步骤之后,处理器1001还可以用于调用存储器1005中存储的笔画重绘程序,并执行以下操作:
若当前内存使用量不满足预设容量标准,则放弃本次重绘,并记录当前已添加至内存的重绘数据点所对应的内存重绘矩形;
在接收到笔画重绘指令时,基于所述笔画重绘指令确定当前重绘区域,判断所述当前重绘区域是否完全包含所述内存重绘矩形,并在所述当前重绘区域完全包含所述内存重绘矩形时,放弃本次重绘。
进一步地,所述判断当前内存剩余容量是否满足预设容量标准的步骤包括:
基于当前内存使用量生成实时使用值,并判断所述实时使用值是否大于预设容量阈值;
若所述实时使用值大于预设容量阈值,则判定当前内存剩余容量不满足预设容量标准;
若所述实时使用值小于或等于预设容量阈值,则判定当前内存剩余容量满足预设容量标准。
进一步地,所述判断所述重绘区域是否覆盖全部所述待重绘数据点的步骤包括:
获取所述重绘区域的区域坐标范围与所述待重绘笔画的尺寸坐标范围;
判断所述尺寸坐标范围是否超出所述区域坐标范围;
若所述尺寸坐标范围超出所述区域坐标范围,则判定所述重绘区域未覆盖全部所述待重绘数据点;
若所述尺寸坐标范围未超出所述区域坐标范围,则判定所述重绘区域覆盖全部所述待重绘数据点。
进一步地,所述判断所述重绘区域是否覆盖全部所述待重绘数据点的步骤之后,处理器1001还可以用于调用存储器1005中存储的笔画重绘程序,并执行以下操作:
若所述重绘区域覆盖全部所述待重绘数据点,则逐一添加每一所述待重绘数据点,直至全部所述待重绘数据点添加完毕;
将全部所述待重绘数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
基于上述硬件结构,提出本发明笔画重绘方法的各个实施例。
随着书写设备技术的快速发展,各式各样的智能书写设备已广泛应用于人们的日常生活,用户在智能书写设备的触控屏上进行笔画书写时,通常会存在重绘原有书写笔画的需求。其中,重绘的含义为:当页面元素样式改变不影响元素在文档流中的位置时,将新样式赋予元素并进行重新绘制的操作,书写笔画即可看作上述元素。
现有的智能书写设备在进行笔画重绘操作时,通常采用的是将组成待重绘笔画的所有数据点按照用户的书写顺序依次进行添加渲染的方式,但在实际应用场景中,往往会出现用户实际书写的重绘笔画超出当前应重绘范围的情况。若依然采用现有的笔画重绘方式,则会在无需重绘的数据点上耗费不必要的处理时间,从而导致了现有的书写设备进行笔画重绘操作的耗时较长的技术问题。
为解决上述技术问题,本发明提供一种笔画重绘方法,即通过判断重绘区域对组成待重绘笔画的待重绘数据点的覆盖情况,使得能够检测到待重绘数据点中有部分数据点不在重绘区域内的情况;通过对待重绘数据点进行遍历,使得能够筛选出待重绘数据点位于重绘区域的数据点,进而对其进行数据添加及渲染操作,避免了对待重绘笔画中区域外数据点的数据添加,减少了书写设备在进行笔画重绘操作时的工作量,大大缩短了书写设备在进行笔画重绘操作时所需的处理时长,从而解决了现有的书写设备进行笔画重绘操作的耗时较长的技术问题。所述笔画重绘方法应用于笔画重绘设备,优选为智能书写本。
参照图2,图2为笔画重绘方法第一实施例的流程示意图。
本发明第一实施例提供一种笔画重绘方法,所述笔画重绘方法包括以下步骤:
步骤S10,确定重绘区域以及由多个待重绘数据点组成的待重绘笔画,
步骤S20,判断所述重绘区域是否覆盖全部所述待重绘数据点;
在本实施例中,本发明可基于TouchGFX(泰辑)实现。TouchGFX是一款嵌入式图形用户界面(GUI,Graphical User Interface)中间件软件,可用于开发GUI界面。重绘区域可通过书写设备中的预设程序自动计算得到,这一计算过程为现有技术,故在此不做赘述。待重绘笔画为用户在原有书写笔画上进行样式更改后的笔画。例如,若用户先前在书写本中绘制一矩形,并在此矩形中手动绘制填充红色线条,将这一矩形填充为红色,但后续又意图对这一矩形的填充颜色更改为绿色,则又在红色线条上覆盖绘制绿色线条,此时绘制的绿色线条即为上述待重绘线条。另外,需要说明的是,在书写设备中,所有书写笔画均是由多个数据点连接而成,因此书写笔画可看作是由多个数据点组成。故待重绘数据点即为组成待重绘笔画的数据点。待重绘数据笔画可由书写设备在用户在屏幕上进行书写时通过实时检测来确定。书写设备在确定当前重绘任务的重绘区域以及用户在原有笔画上更改的待重绘笔画后,即可判断组成待重绘笔画的所有数据点是否均处于重绘区域内。具体地,书写设备通过获取重绘区域的坐标范围,以及待重绘笔画的坐标范围,并将这两类坐标范围进行比较来实现对重绘区域覆盖情况的判断。若待重绘笔画的坐标范围存在超出重绘区域的坐标范围,书写设备则可判定重绘区域未覆盖全部的待重绘数据点;若待重绘笔画的坐标范围均未超出重绘区域的坐标范围,书写设备则可判定重绘区域覆盖了全部的待重绘数据点。
步骤S20,若所述重绘区域未覆盖全部所述待重绘数据点,则遍历多个所述待重绘数据点,以筛选出多个所述待重绘数据点中位于所述重绘区域内的区域内数据点;
在本实施例中,区域内数据点为在当前的重绘区域未覆盖待重绘笔画中全部的待重绘数据点时,待重绘笔画中位于重绘区域外的数据点。若书写设备判定当前的重绘区域并未全部覆盖待重绘笔画充所有的待重绘数据点,则对待重绘笔画中的所有待重绘数据点依次进行遍历。直至遍历完成所有的待重绘数据点,即可将所有的待重绘数据点分类为处于重绘区域内的数据点与处于重绘区域外的数据点。具体地,根据重绘区域在X轴与Y轴上的最大坐标范围,遍历顺序可为X轴顺序与Y轴顺序,且根据可能出现的情况分为以下几种:第一种,待重绘数据点的X轴坐标数据的最大值超出重绘区域在X轴上的坐标范围,待重绘数据点的Y轴坐标数据的最大值未超出重绘区域在Y轴上的坐标范围;第二种,待重绘数据点的Y轴坐标数据的最大值超出重绘区域在Y轴上的坐标范围,待重绘数据点的X轴坐标数据的最大值未超出重绘区域在X轴上的坐标范围;待重绘数据点的X轴坐标数据的最大值超出重绘区域在X轴上的坐标范围,且待重绘数据点的Y轴坐标数据的最大值也超出重绘区域在Y轴上的坐标范围。
步骤S30,添加所述区域内数据点,并将所述区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
在本实施例中,书写设备添加区域内数据点的添加操作实质上指的是将位于待重绘笔画中位于重绘区域内的数据点添加到渲染器上,以基于渲染器将区域内数据点渲染在书写设备的显示屏幕上,连接处于相邻位置的区域数据点,以连接多条线段,从而达到重绘笔画的效果。需要说明的是,考虑到实际应用中设备的内存容量限制,本发明在进行数据点添加操作时,每添加一数据点,都需要实时检测内存容量,并在检测到内存容量不足时停止下一数据点的添加,也即是放弃本次重绘任务,后续可将本次重绘任务进行分解,将一次重绘任务所要添加的数据点分为多批次逐步添加完成。
在本实施例中,通过确定重绘区域以及由多个待重绘数据点组成的待重绘笔画,并判断所述重绘区域是否覆盖全部所述待重绘数据点;若所述重绘区域未覆盖全部所述待重绘数据点,则遍历多个所述待重绘数据点,以筛选出多个所述待重绘数据点中位于所述重绘区域内的区域内数据点;添加所述区域内数据点,并将所述区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。通过上述方式,本发明通过判断重绘区域对组成待重绘笔画的待重绘数据点的覆盖情况,使得能够检测到待重绘数据点中有部分数据点不在重绘区域内的情况;通过对待重绘数据点进行遍历,使得能够筛选出待重绘数据点位于重绘区域的数据点,进而对其进行数据添加及渲染操作,避免了对待重绘笔画中区域外数据点的数据添加,减少了书写设备在进行笔画重绘操作时的工作量,大大缩短了书写设备在进行笔画重绘操作时所需的处理时长,从而解决了现有的书写设备进行笔画重绘操作的耗时较长的技术问题。
进一步地,图中未示的,基于上述图2所示的第一实施例,提出本发明笔画重绘方法的第二实施例。在本实施例中,步骤S30包括:
若所述重绘区域未覆盖全部所述待重绘数据点,则沿预设第一坐标方向遍历方向上的所述待重绘数据点,并在检测到第一坐标方向上的所述待重绘数据点中存在第一区域外数据点时,基于所述第一区域外数据点,将第一坐标方向上的所述待重绘数据点分为多个数据点集合;
沿预设第二坐标方向遍历方向上的所述数据点集合,并判断第二坐标方向上的所述数据点集合中是否存在第二区域外数据点;
在本实施例中,第一坐标方向或第二坐标方向可为X轴方向与Y轴方向中的任意一种,且第一坐标方向须与第二坐标方向不同,也即是存在两种情况:第一种情况,在第一坐标方向为X轴方向时,第二坐标方向则为Y轴方向;第二种情况,在第一坐标方向为Y轴方向时,第二坐标方向则为X轴方向。另外,X轴方向还可包括X轴正方向与X轴负方向,Y轴方向还可包括Y轴正方向与Y轴负方向,本实施例对此不作具体限定。第一区域外数据点为在重绘区域未覆盖全部待重绘数据点时,沿第一坐标方向遍历待重绘数据点所检测到的,其在第一坐标方向上的坐标数据位于重绘区域在第一坐标方向上的坐标范围外的数据点。数据点集合为以第一区域外数据点为划分依据,将所有待重绘数据点进行分组后的集合。第二区域外数据点为在重绘区域未覆盖全部待重绘数据点时,沿第二坐标方向遍历待重绘数据点所检测到的,其在第二坐标方向上的坐标数据位于重绘区域在第二坐标方向上的坐标范围外的数据点。沿第一坐标方向对数据点进行遍历的实质含义为依次获取每一数据点在第一坐标方向上的坐标,类似地,沿第二坐标方向对数据点进行遍历的实质含义即为依次获取每一数据点在第而坐标方向上的坐标。
书写设备若检测到当前的重绘区域没有覆盖待重绘笔画中的所有待重绘数据点,则沿第一坐标方向待重绘笔画中的待重绘数据点依次进行访问,获取每一待重绘数据点在第一坐标方向上的坐标数据,并将其与重绘区域在第一坐标方向上的坐标范围进行匹配。若该待重绘数据点在第一坐标方向上的坐标数据超出重绘区域在第一坐标方向上的坐标范围,则书写设备可判定该待重绘数据点为上述第一区域外数据点;若该待重绘数据点的坐标数据未超出重绘区域的坐标范围,则书写设备可判定该待重绘数据点不为上述第一区域外数据点。书写设备在检测到多个待重绘数据点中存在第一区域外数据点时,以此第一区域外数据点为划分点,将待重绘笔画的多个待重绘数据点划分成多组数据点集合。书写设备继续沿第二坐标方向依次访问各组数据点集合,获取各组数据点集合中每一数据点在第二坐标方向上的坐标数据,并将其与重绘区域在第二坐标方向上的坐标范围进行匹配。若该数据点集合中的数据点在第二坐标方向上的坐标数据超出重绘区域在第二坐标方向上的坐标范围,则书写设备可判定该待重绘数据点为上述第二区域外数据点;若该数据点集合中的数据点在第二坐标方向上的坐标数据未超出重绘区域在第二坐标方向上的坐标范围,则书写设备可判定该待重绘数据点不为上述第二区域外数据点。
若第二坐标方向上的所述数据点集合中不存在第二区域外数据点,则在检测到遍历完成全部所述待重绘数据点时,从多个所述数据点集合中筛选出除去所述第一区域外数据点的第一区域内数据点。
在本实施例中,第一区域内数据点为在重绘区域未覆盖全部待重绘数据点,且不存在第二区域外数据点时,待重绘数据点中所有位于重绘区域内的数据点。若书写设备当前判定多组数据点集合中不存在位于第二坐标方向的第二区域外数据点,则继续判断当前是否已经完成对所有待重绘数据点的遍历,具体的判断方式可为:在进行第一数据集分组时,获取每一数据点集合的数据点数目,并在遍历时各个数据点集合时,对已遍历数据点进行实时计数,直至检测到实时遍历个数均达到各个数据点集合的数据点数目时,即可判定当前以完成对所有待重绘数据点的遍历。
进一步地,在本实施例中,所述判断多个所述数据点集合中是否存在位于第二坐标方向的第二区域外数据点的步骤之后,还包括:
若是,则基于所述第二区域外数据点,将第二坐标方向上的所述数据点集合分为多个数据点子集合;
在检测到遍历完成全部所述待重绘数据点时,从多个所述数据点子集合中筛选出除去所述第二区域外数据点的第二区域内数据点。
在本实施例中,数据点子集合为以第二区域外数据点为划分依据,将多个数据点集合继续进行分组后形成的集合。由于数据点子集合是基于数据点集合再进行细分所得,故数据点子集合的个数必然大于数据点集合的个数。此时还需继续判断当前是否已经完成对所有待重绘数据点的遍历,若书写设备检测到当前以完成对所有待重绘数据点的遍历,则可从待重绘数据点中筛选出位于重绘区域内的第二区域内数据点。
作为一具体实施例,如图3所示。图3中存在一条包含25个待重绘数据点的笔画,矩形框代表重绘区域,重绘区域内的笔画需要重新绘制。下面对这25各待重绘数据点的遍历顺序进行说明。首先,沿X轴方向进行遍历:从点1开始,逐点遍历至点12,书写设备检测到第一个X轴方向分段,命名为“X分段1”,X分段1包含点1至点12,此时沿X轴方向的遍历并未结束;在X分段1中,沿Y轴方向进行遍历:从点1开始,逐点遍历至点6,书写设备检测到第一个Y轴方向分段,命名为“Y分段1”,Y分段1包含点1至点6,此时对X分段1的遍历并未结束;从点6开始,逐点遍历至点12,发现第二个Y轴方向分段,命名为“Y分段2”,Y分段2包含点8至点12,此时结束对于X分段1的遍历。从点12开始,逐点遍历至点25,书写设备检测到第二个X轴方向分段,命名为“X分段2”,X分段2包含点14至点25,此时沿X轴方向的遍历结束。在X分段2中,沿Y轴方向遍历:从点14开始,逐点遍历至点18,书写设备检测到第三个Y轴方向分段,命名为“Y分段3”,Y分段3包含点14至点18,此时对X分段2的遍历没有结束;从点18开始,逐点遍历至点25,发现第四个Y轴方向分段,命名为“Y分段4”,Y分段4包含点20~点25,此时对X分段2遍历结束,同时完成了对此包含有25个待重绘数据点的待重绘笔画的遍历。经过以上过程,笔画最终被分成四个小段进行绘制,分别是Y分段1,Y分段2,Y分段3和Y分段4。点1、点12、点13与点25为上述第一区域外数据点,点6、点7、点8、点18、点19与点20为上述第二区域外数据点。这些第一区域外数据点将这25个点分为两个数据点集合,第一个第一数点集包括点1至点12,第二个数据点集合包括点14至点25;第二区域外数据点再将两个数据点集合分为四个数据点子集合,第一个数据点子集合包括点1至点6,第二个数据点子集合包括点8至点12,第三个数据点子集合包括点14至点18,第四个数据点子集合包括点20至点25。
进一步地,在本实施例中,步骤S30包括:
每添加一所述第一区域内数据点或所述第二区域内数据点,则判断当前内存使用量是否满足预设容量标准;
若当前内存使用量满足预设容量标准,则依次添加下一所述第一区域内数据点或所述第二区域内数据点,直至将全部所述第一区域内数据点或所述第二区域内数据点添加完毕;
将全部所述第一区域内数据点或所述第二区域内数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
在本实施例中,由于书写设备的内存空间有限,因此每添加一个区域内数据点,都需要根据当前的内存使用量确定是否还可以进行下一区域内数据点的添加。预设容量标准为由实际的内容容量大小所确定的容量标准,载有同样内存容量大小的书写设备,其预设容量标准相同。
书写设备在每添加一个第一区域内数据点或第二区域内数据点时,均需判断当前动的态变化的内存使用量是否满足预设容量标准。若书写设备判定当前的内存使用量满足预设容量标准,则根据实际遍历顺序添加下一第一区域内数据点或第二区域内数据点。
进一步地,在本实施例中,所述判断当前内存使用量是否满足预设容量标准的步骤之后,还包括:
若当前内存使用量不满足预设容量标准,则放弃本次重绘,并记录当前已添加至内存的重绘数据点所对应的内存重绘矩形;
在接收到笔画重绘指令时,基于所述笔画重绘指令确定当前重绘区域,判断所述当前重绘区域是否完全包含所述内存重绘矩形,并在所述当前重绘区域完全包含所述内存重绘矩形时,放弃本次重绘。
在本实施例中,若书写设备判定当前的内存使用量不满足预设容量标准,则当前无法继续区域内数据点的添加,放弃本次重绘任务,并生成当前已添加至内存的数据点所占用的矩形,也即是上述内存重绘矩形。例如,本次重绘任务需添加10个数据点,但在添加完第5个数据点时,系统判定当前内存使用量不满足预设容量标准,在需生成包含这已添加的5个数据点的矩形作为内存重绘矩形。需要说明的是,此内存重绘矩形为能够包含这些数据点的面积最小矩形,代表了当前设备所能处理重绘任务的最大能力限度。系统记录下内存重绘矩形的长宽、坐标数据等相关数据,以便在后续再次调用重绘时,可根据内存重绘矩形的相关数据判断当前重绘任务的重绘区域是否完全包含此内存重绘矩形。如果系统判定当前的重绘区域完全包含此内存重绘矩形,也即是说明当前的重绘任务超出了设备当前可处理重绘任务的最大限度,即可直接放弃此次重绘任务,再将此重绘任务进行分解处理,将同一任务中需要添加的数据点以分批的方式逐步添加完成。
进一步地,在本实施例中,所述判断当前内存剩余容量是否满足预设容量标准的步骤包括:
基于当前内存使用量生成实时使用值,并判断所述实时使用值是否大于预设容量阈值;
若所述实时使用值大于预设容量阈值,则判定当前内存剩余容量不满足预设容量标准;
若所述实时使用值小于或等于预设容量阈值,则判定当前内存剩余容量满足预设容量标准。
在本实施例中,实时使用值为用于反映书写设备当前进行笔画重绘操作所占用的内存容量大小,预设容量阈值为书写设备中的内存为进行笔画重绘操作所预留的内存容量大小。需要说明的是,实时使用值为可由预设程序实时自动生成,预设容量阈值由书写设备实际所使用内存的固定容量大小决定,不同容量大小的内存所对应的预设容量阈值不同。
书写设备实时获取根据动态变化的内存剩余容量所生成的实时使用值,判断当前的实时使用值是否大于预设的容量阈值。若书写设备判定当前的实时使用值大于预设的容量阈值,则可进而判定当前内存剩余容量不满足预设容量标准,不可继续添加区域内数据点;若书写设备判定当前的实时使用值小于或等于预设的容量阈值,则可进而判定当前内存剩余容量满足预设容量标准,可继续添加下一区域内数据点。
在本实施例中,进一步通过分别沿第一坐标方向与第二坐标方向遍历全部待重绘数据点,并依据待重绘数据点中位于重绘区域外的数据点将全部待重绘数据点进行分组,避免了数据点在遍历时的遗漏,同时也提升了区域内数据点的筛选效率;通过在每添加一区域内数据点之后,根据当前的内存使用量判断当前是否能继续进行下一区域内数据点的添加,避免了因数据点过度添加而导致内存空间不足的情况;通过在当前检测到以达到内存容量限度,无法继续添加数据点时,记录下可代表设备处理能力限度的内存重绘矩形,使得在后续进行重绘操作时能够直接通过此内存重绘矩形判断当前重绘任务是否超负荷,使得提高了系统处理重绘任务的效率;通过直接将实时使用值与预设的容量阈值进行比较,使得对于内容剩余容量的判断过程简单易行,从而提高了判断效率。
进一步地,图中未示的,基于上述图2所示的第一实施例,提出本发明笔画重绘方法的第三实施例。在本实施例中,步骤S20包括:
获取所述重绘区域的区域坐标范围与所述待重绘笔画的尺寸坐标范围;
判断所述尺寸坐标范围是否超出所述区域坐标范围;
若所述尺寸坐标范围超出所述区域坐标范围,则判定所述重绘区域未覆盖全部所述待重绘数据点;
若所述尺寸坐标范围未超出所述区域坐标范围,则判定所述重绘区域覆盖全部所述待重绘数据点。
在本实施例中,区域坐标范围包括重绘区域的X轴坐标范围与Y轴坐标范围。尺寸坐标范围为待重绘笔画的所有待重绘数据点所对应的X轴坐标的最大范围,以及Y轴坐标的最大范围。例如,书写设备当前获取到重绘区域的区域坐标范围为X轴坐标范围(20,100),Y轴坐标范围(30,80)。待重绘笔画包含五个待重绘数据点,分别是(30,20)、(40,30)、(50,40)、(60,50)与(90,70),则根据这五个点的坐标数据,即可得出待重绘笔画的X轴坐标数据的最大坐标范围为(30,90),Y轴坐标数据的最大坐标范围为(20,70),也即是待重绘笔画的Y轴坐标数据的最大坐标范围超出重绘区域的Y轴坐标范围,则书写设备可判定重绘区域未覆盖全部的待重绘数据点。
进一步地,在本实施例中,步骤S20之后,还包括:
若所述重绘区域覆盖全部所述待重绘数据点,则逐一添加每一所述待重绘数据点,直至全部所述待重绘数据点添加完毕;
将全部所述待重绘数据点渲染在屏幕上,以完成对所述待重绘笔画的重绘操作。
在本实施例中,若书写设备当前判定待重绘笔画的所有待重绘数据点均在重绘区域内,则根据用户的笔画书写顺序依次添加各个待重绘数据点,直至将全部待重绘数据点添加至显存,即可将全部待重绘数据点渲染至显示屏幕,此时各个数据点按照书写顺序依次连接,即可在屏幕中显示出对应的待重绘笔画,以完成对待重绘笔画的重绘操作。
在本实施例中,进一步通过将重绘区域的区域坐标范围与待重绘笔画的尺寸坐标范围进行比较,使得能够快速判断出待重绘笔画中是否存在重绘区域外的数据点,提升了判断效率,同时也为后续处理方式的选择提供了依据;通过在重绘区域包含了待重绘笔画的全部数据点时,直接进行全部数据点的添加,进一步完善了本发明对于各种实际应用场景下对于笔画重绘的处理过程。
本发明还提供一种笔画重绘设备。
所述笔画重绘设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的笔画重绘程序,其中所述笔画重绘程序被所述处理器执行时,实现如上所述的笔画重绘方法的步骤。
其中,所述笔画重绘程序被执行时所实现的方法可参照本发明笔画重绘方法的各个实施例,此处不再赘述。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有笔画重绘程序,所述笔画重绘程序被处理器执行时实现如上所述的笔画重绘方法的步骤。
其中,所述笔画重绘程序被执行时所实现的方法可参照本发明笔画重绘方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台笔画重绘设备执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。