手写轨迹绘制方法及装置与流程

文档序号:17286694发布日期:2019-04-03 03:37阅读:520来源:国知局
手写轨迹绘制方法及装置与流程

本发明涉及人机交互领域,特别涉及手写轨迹绘制方法及装置。



背景技术:

现有的设备越来越多地采用触控方式进行人机交互,例如智能手机、车载信息娱乐系统等。采用触控方式进行人机交互的设备通常具有适于用户输入的触控板和显示用户输入的显示器。当用户在触控板上进行手写输入时,显示器上会显示用户的手写轨迹,以对用户的输入进行反馈。若从用户开始手写输入到显示该手写轨迹的时间间隔较大,则会给用户书写不畅的感觉,用户体验不佳。为了提升用户体验,需要尽可能地缩短显示器显示手写轨迹与用户在触控板上手写输入的时间间隔。



技术实现要素:

本发明解决的问题是提供一种手写轨迹绘制方法及装置,其能够快速地绘制手写轨迹,提升了用户体验。

为了解决上述问题,本发明的一方面提供了一种手写轨迹绘制方法,适用于手写轨迹绘制装置,所述手写轨迹绘制装置包括中央处理器和图形处理器,所述方法包括:所述中央处理器接收响应于手写输入的多个触控事件;所述中央处理器根据所述多个触控事件生成轨迹点序列;所述中央处理器向所述图形处理器发送一个绘制指令和所述轨迹点序列;以及所述图形处理器响应于所述绘制指令根据所述轨迹点序列绘制所述手写轨迹。

本发明的另一方面提供了一种手写轨迹绘制装置,包括:计算机可读存储介质,其上存储有多个指令;一个或多个中央处理器,适于执行所述多个指令以执行如下动作:接收响应于手写输入的多个触控事件;根据所述多个触控事件生成轨迹点序列;以及向一个或多个图形处理器发送一个绘制指令和所述轨迹点序列;以及所述一个或多个图形处理器,适于响应于所述绘制指令根据所述轨迹点序列绘制所述手写轨迹。

本发明的又一方面提供了一种非易失性计算机可读存储介质,其上存储有适于一个或多个中央处理器执行的多个指令,所述多个指令响应于由所述一个或多个中央处理器执行而促使所述一个或多个中央处理器执行以下的动作:接收响应于手写输入的多个触控事件;根据所述多个触控事件生成轨迹点序列;以及向一个或多个图形处理器发送一个绘制指令和所述轨迹点序列。

与现有技术相比,上述方案具有以下优点:

本发明提供的手写轨迹绘制方法及装置,一方面直接将触控点的位置信息直接加入到轨迹点序列中,无需判断相邻的两个触控点的位置是否大于预设值,另一方面在一次绘制中只需要调用一次相关的绘制函数,无需重复调用绘制函数,这两方面均节省了中央处理器的处理开销,加快了处理速度,能够快速地绘制手写轨迹,提升了用户体验。

附图说明

图1例示了根据本发明一个或多个实施例的手写轨迹绘制装置的模块示意图;

图2例示了根据本发明一个或多个实施例的手写轨迹绘制方法的时序示意图;

图3例示了根据本发明一个或多个实施例的手写轨迹示意图。

具体实施方式

在下面的描述中,阐述了许多具体细节以便使所属技术领域的技术人员更全面地了解本发明。但是,对于所属技术领域内的技术人员明显的是,本发明的实现可不具有这些具体细节中的一些。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和要素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是权利要求的要素或限定,除非在权利要求中明确提出。

本发明的发明人发现,采用中央处理器重复调用绘制线段的函数让图形处理器重复绘制线段来绘制手写轨迹时,从用户开始手写输入到显示该手写轨迹需要较大的时间间隔(例如250毫秒)。经发明人研究发现,导致前述绘制手写轨迹方式需要较长时间的原因主要包括:(1)中央处理器与图形处理器的每一次交互均需要较大的时间开销;(2)根据相邻两个触控点的距离是否大于一预设值(例如100像素)决定是否丢弃部分触控点的操作所带来的时间开销。基于上述发现,发明人提出了一种能够快速地绘制手写轨迹的手写轨迹绘制方法及装置。

图1例示了根据本发明一个或多个实施例的手写轨迹绘制装置的模块示意图。参考图1所示,手写轨迹绘制装置100包括处理系统110和计算机可读介质120。计算机可读介质120上可以存储有多个指令和/或数据。处理系统110可以执行计算机可读介质120上存储有的多个指令以执行一个或多个动作,从而实现各种功能。例如,处理器系统110可以执行多个指令以对一个或多个触控事件进行处理,以实现手写轨迹的绘制。处理系统110还可以从计算机可读介质120读取数据,和/或将数据存储至计算机可读介质120中。处理系统110可以包括中央处理器(centralprocessingunit,cpu)111和/或图形处理器(graphicsprocessingunit,gpu)112。中央处理器111用于对通用计算需求进行处理。图形处理器112用于对图形处理需求进行处理。计算机可读介质120可以包括内存(memory)121和/或存储器(storage)122。内存121的示例包括易失性存储介质,例如随机存取存储器(randomaccessmemory,ram)等。存储器122的示例包括非易失性存储介质,例如只读存储器(readonlymemory,rom)、闪存、光盘、磁盘等。

手写轨迹绘制装置100还可以包括触控模块130。触控模块130用于根据用户在其上的操作生成一个或多个触控事件。根据用户操作的不同,触控事件可以具有不同的类型,例如触控开始、触控移动和触控结束等。触控事件中包括生成该触控事件时在触控模块130上的一个或多个触控点的位置信息。位置信息示例性地可以包括基于笛卡尔坐标系的坐标、基于极坐标系的坐标等。用户在触控模块130上的操作可以通过手指、手写笔等进行。触控模块130的示例可以包括电容式触控模块、电阻式触控模块、波动式(例如声波、红外线)触控模块等。

手写轨迹绘制装置100还可以包括定时器140。定时器140用于根据计时请求进行计时,并在计时到达时触发中断等。

手写轨迹绘制装置100还可以包括显示模块150。显示模块150用于显示各种交互界面。在用户进行手写输入时,显示模块150还用于显示用户的手写轨迹。

手写轨迹绘制装置100还可以包括i/o接口160。i/o接口160用于输入和/或输出信号、数据或信息。例如,手写轨迹绘制装置100可以通过i/o接口160与外部设备进行有线或无线的数据交互。在一个或多个实施例中,手写轨迹绘制装置100内部可以没有触控模块130,而是通过i/o接口160接收外部触控设备生成的触控事件。在一个或多个实施例中,手写轨迹绘制装置100内部可以没有显示模块150,而是通过i/o接口160将预显示的内容输出给外部的显示设备加以显示。

在各种实现中,手写轨迹绘制装置100可以采用各种不同的配置。例如,手写轨迹绘制装置100可以被实现为个人计算机、膝上型计算机、平板计算机、移动电话、便携式音乐播放器、智能穿戴设备、车载信息娱乐系统等中的一种或多种。

图2例示了根据本发明一个或多个实施例的手写轨迹绘制方法的时序示意图。手写轨迹显示方法300示例性地可以在如图1所示的手写轨迹绘制装置100中实现。例如,手写轨迹显示方法300可以以指令的形式(例如应用)存储在计算机可读介质120中,并且由处理系统110调用和/或实现。下面结合图2所示对手写轨迹显示方法300的各步骤进行描述。

在步骤s310,触控模块130响应于用户的手写输入生成一个或多个触控事件(touchevent)。在触控事件中可以包括该触控事件的类型(type)、与该触控事件相对应的触控点的位置信息。该位置信息示例性地为笛卡尔坐标系下的坐标(x,y)。一般而言,在用户的手指或手写笔等开始接触触控模块130时,会产生一个触控开始这一类型的触控事件。在用户的手指或手写笔等在触控模块130上移动时,会产生一个或多个触控移动这一类型的触控事件。在用户的手指或手写笔等在离开触控模块130时,会产生一个触控结束这一类型的触控事件。可以理解,在触控操作持续进行的过程中,触控事件也会持续地产生。

在步骤s320,中央处理器111在接收到触控事件后,根据触控事件生成轨迹点序列。具体来说,中央处理器111在接收到触控事件后,从每一触控事件中提取与手写输入相关的触控点的位置信息,并将每一触控点的位置信息加入到轨迹点序列中。也就是说,在步骤s320中是将所有触控事件中的触控点位置信息都加入到轨迹点序列中,不需要判断相邻的两个触控点的位置是否大于预设值。在一个或多个实施例中,中央处理器111还将触控事件的类型也加入到轨迹点序列中。在一个或多个实施例中,轨迹点序列可以存储在计算机可读介质120中,例如存储在内存121中。

在步骤s330,中央处理器111向图形处理器112发送一个绘制指令(drawcmd)和轨迹点序列。在一个或多个实施例中,步骤s330中包括根据轨迹点序列中的轨迹点个数确定发送哪种绘制指令的步骤s332。具体来说,在步骤s332,判断轨迹点序列中是否只包含一个轨迹点;若轨迹点序列中仅包含一个轨迹点,中央处理器111向图形处理器112发送绘制点的绘制指令;若轨迹点序列中包含多个轨迹点,中央处理器111则向图形处理器112发送绘制折线的绘制指令。在一个或多个实施例中,当轨迹点序列中包含多个轨迹点时,中央处理器111可以向图形处理器112发送绘制曲线的绘制指令。该绘制曲线的绘制指令例如可以包括绘制贝塞尔曲线的指令。

在一个或多个实施例中,图形处理器112为支持openvg的图形处理器。openvg为硬件加速矢量图形而设计的一个api,其由khronos非盈利技术协会管理。在这类实施例中,中央处理器111发送给图形处理器112的绘制指令为openvg的函数调用指令。对于绘制点的绘制指令,可以通过调用绘制椭圆的函数进行。绘制椭圆的函数的调用接口如下:

vguerrorcodevguellipse(vgpathpath,vgfloatcx,vgfloatcy,vgfloatwidth,vgfloatheight)。

在一个或多个实施例中,中央处理器111可以通过调用具有非封闭参数的多边形绘制函数来向图形处理器112发送绘制折线的绘制指令。对于图形处理器112为支持openvg的图形处理器的实施例,绘制多边形的函数的调用接口如下:

vguerrorcodevgupolygon(vgpathpath,constvgfloat*points,vgintcount,vgbooleanclosed)。

在一个或多个实施例中,步骤s330中包括从轨迹点序列中取出所有触控点位置信息的步骤s331。在从轨迹点序列中取出所有触控点位置信息后,该轨迹点序列为空。如此,可以在基于取出的所有触控点位置信息进行绘制时,还同时对新接收的触控事件进行处理,将这些新接收的触控事件中的触控点位置信息加入到轨迹点序列中。也就是说,中央处理器111可以同时执行步骤s320和步骤s330。需要说明的是,在中央处理器111从轨迹点序列中取出所有轨迹点位置信息后,在向图形处理器112发送绘制指令时,一并发送的是该取出的轨迹点位置信息。

在一个或多个实施例中,步骤s330可以由中断触发执行。具体来说,当定时器140中的预设时长到达时,触发中断使中央处理器111执行步骤s330。在一个或多个实施例中,定时器140每隔预设时长触发一次中断。该预设时长示例性地可以为40毫秒。

在步骤s340,图形处理器112响应于中央处理器111发送的绘制指令和轨迹点序列绘制手写轨迹。具体来说,当中央处理器111发送的是绘制点的绘制指令时,图形处理器112根据接收到的一个触控点位置信息绘制点(步骤s341)。当中央处理器111发送的是绘制折线的绘制指令时,图形处理器112根据接收到的多个触控点位置信息绘制折线(步骤s342),即将每两个相邻的触控点用线段连接起来,形成折线。在一个或多个实施例中,当中央处理器111向图形处理器112发送绘制曲线的绘制指令时,图形处理器112根据接收到的都够恶触控点位置信息绘制曲线(图中未示出)。由于图形处理器112包括绘制各种图形的硬件加速器,因此其可以快速地绘制出点、折线、曲线等图形。

在步骤s350,中央处理器111向显示模块150发送绘制的手写轨迹,以进行显示。

需要说明的是,上述的步骤s310-s350是以绘制手写轨迹中的一部分来描述的。一般而言,在绘制整个手写轨迹的过程中会重复多次调用步骤s310-s350。参考图1所示,在用户的触控过程中,触控模块130产生序号为0至n+m的触控事件,在第一次的步骤s310-s350中对序号为0至n的触控事件进行处理,绘制对应于序号为0至n的触控事件的手写轨迹,在第二次的步骤s310-s350中对序号为n+1至n+m的触控事件进行处理,绘制对应于序号为n+1至n+m的触控事件的手写轨迹。

与采用中央处理器重复调用绘制线段的函数让图形处理器重复绘制线段来绘制手写轨迹的方式相比,手写轨迹显示方法300至少在下述两方面节省了中央处理器111的处理开销。

一方面,手写轨迹显示方法300在对触控事件进行处理时,无需判断相邻的两个触控点的位置是否大于预设值,而是直接将触控点的位置信息直接加入到轨迹点序列中,这节省中央处理器111的处理开销,提升了处理速度。

另一方面,手写轨迹显示方法300在一次绘制(步骤s330)中只需要调用一次相关的绘制函数,无需重复调用绘制函数,这节省了循环多次调用函数的处理开销,即节省了循环运行的时间,同样提升了处理速度。举例来说,设轨迹点序列中有n+1个触控点,采用采用中央处理器重复调用绘制线段的函数让图形处理器重复绘制线段来绘制手写轨迹的方式需要循环n次,调用n次绘制线段的函数,采用手写轨迹显示方法300则只需要调用一次绘制折线的函数。由于图形处理器112中具有绘制各种图形的硬件加速器,绘制一次线段和绘制一次折线所需的时间差不多,因此手写轨迹显示方法300可以快速地绘制出手写轨迹。

经实验,一车载信息娱乐系统上使用中央处理器重复调用绘制线段的函数让图形处理器重复绘制线段来绘制手写轨迹的方式绘制手写轨迹时,从用户开始手写输入到显示该手写轨迹的时间间隔大约需要250毫秒,而在同一车载信息娱乐系统上使用手写轨迹显示方法300绘制手写轨迹时,从用户开始手写输入到显示该手写轨迹的时间间隔大约仅需要50毫秒。可见,手写轨迹显示方法300相对于使用中央处理器重复调用绘制线段的函数让图形处理器重复绘制线段来绘制手写轨迹的方式显示手写轨迹的速度提升了大约5倍。

图3例示了根据本发明一个或多个实施例的手写轨迹示意图。图3的(a)部分是采用中央处理器重复调用绘制线段的函数让图形处理器重复绘制手写轨迹时的手写轨迹示意图,可以看到轨迹点p在手指继续向右移动250毫秒(ms)之后才显示。图3的(b)部分是采用手写轨迹显示方法300绘制手写轨迹时的手写轨迹示意图,可以看到轨迹点p在手指继续向右移动50毫秒(ms)之后即显示。可见,采用手写轨迹显示方法300绘制手写轨迹时显示模块上显示的手写轨迹跟随手指的运动轨迹更加紧密,用户手写体验更加顺畅,提升了用户体验。

虽然本发明已以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内所作的各种更动与修改,均应纳入本发明的保护范围内,因此本发明的保护范围应当以权利要求所限定的范围为准。

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