笔迹绘制方法、装置、交互智能平板和存储介质与流程

文档序号:16753478发布日期:2019-01-29 17:06阅读:242来源:国知局
笔迹绘制方法、装置、交互智能平板和存储介质与流程

本发明涉及交互智能平板技术领域,特别是涉及交互智能平板上的笔迹绘制方法、装置、交互智能平板和存储介质。



背景技术:

在交互智能平板领域,笔迹书写功能作为交互智能平板越来越重要的功能之一,已经广泛的应用于在人们的工作和学习之中,极大的提高了人们的工作及学习效果。例如,在教学场景下,老师可以在当前交互智能平板上进行笔迹书写,学生通过交互智能平板能够观看到老师书写的笔迹。

笔迹书写功能可以通过交互智能平板中的软件及相关硬件实现,触摸屏检测到笔迹书写事件之后,触摸屏硬件收集触摸消息并发送到交互智能平板中的系统,系统在解析得到触摸点之后,便能基于触摸点在交互智能平板的显示屏上绘制笔迹。在实现本发明的过程中,发明人发现现有技术中存在如下问题,通过交互智能平板的显示屏显示出的笔迹的边缘较为生硬,导致笔迹绘制效果较差。



技术实现要素:

基于此,有必要针对现有方式下交互智能平板上绘制的笔迹的边缘较为生硬的问题,提供一种交互智能平板的笔迹绘制方法、装置、交互智能平板和存储介质。

根据本发明的第一方面,提供一种交互智能平板上的笔迹绘制方法,包括:

获取触摸点;所述触摸点为交互智能平板触摸屏上的笔迹书写事件触发的多个点;

计算所述触摸点的宽度,以及计算触摸点对应的笔迹的骨架线;

确定笔迹的轮廓线;所述轮廓线根据所述触摸点以及触摸点的宽度得到;

获取轮廓线中的拐点,生成所述拐点对应的贝塞尔曲线,作为平滑后的轮廓线;贝塞尔曲线的走向由所述骨架线的走向决定;

根据平滑后的轮廓线绘制笔迹。

在其中一个实施例中,所述生成所述拐点对应的贝塞尔曲线,包括:

过参考点作垂直于骨架线的直线;所述参考点为相邻两个触摸点的中心点;

获取所述直线与所述轮廓线的交点,作为定点;

将所述轮廓线中的拐点确定为控制点;

根据所述控制点和定点生成贝塞尔曲线,得到所述拐点对应的贝塞尔曲线。

在其中一个实施例中,所述计算所述触摸点对应的笔迹的骨架线,包括:

连接相邻两个触摸点,得到触摸点连线;

根据所述触摸点连线,得到笔迹的骨架线。

在其中一个实施例中,所述根据所述触摸点连线,得到笔迹的骨架线,包括:

获取相邻两条触摸点连线的夹角;

若存在目标夹角,则以所述目标夹角处的触摸点作为分割点,将所述触摸点分割为第一触摸点集合和第二触摸点集合;目标夹角为所述夹角中小于或者等于90度的夹角;

分别得到第一触摸点集合对应的第一贝塞尔曲线、第二触摸点集合对应的第二贝塞尔曲线;

在所述分割点处,采用棱角方式连通所述第一贝塞尔曲线与第二贝塞尔曲线,得到笔迹的骨架线。

在其中一个实施例中,所述基于贝塞尔算法,分别得到第一触摸点集合对应的第一贝塞尔曲线、第二触摸点集合对应的第二贝塞尔曲线,包括:

确定相邻两个触摸点的中心点作为定点,将所述相邻两个触摸点确定为控制点;

根据所述控制点和定点做贝塞尔曲线,得到第一触摸点集合对应的第一贝塞尔曲线、第二触摸点集合对应的第二贝塞尔曲线。

在其中一个实施例中,还包括:

若不存在目标夹角,生成所述触摸点对应的贝塞尔曲线,作为笔迹的骨架线。

在其中一个实施例中,所述计算所述触摸点的宽度,包括:

识别所述触摸点中的笔锋点和非笔锋点;

分别计算笔锋点、非笔锋点的宽度。

在其中一个实施例中,所述计算非笔锋点以及第一个笔锋点的宽度,包括:

获取触摸点的书写速度;

根据所述书写速度得到触摸点的宽度;其中,书写速度较大的触摸点对应的宽度、大于书写速度较小的触摸点对应的宽度。

在其中一个实施例中,所述获取触摸点的书写速度,包括:

获取触摸点、所述触摸点的前一相邻触摸点之间的距离,将所述距离作为所述触摸点的书写速度。

在其中一个实施例中,计算非笔锋点以及第一个笔锋点的宽度,包括:

所述触摸点中的首个触摸点对应的宽度等于预设的默认宽度。

在其中一个实施例中,所述计算非笔锋点以及第一个笔锋点的宽度,还包括:

针对所述首个触摸点之外的触摸点,采用公式(1)确定触摸点的宽度:

其中,thiness表示触摸点的宽度,v表示所述触摸点的书写速度,k,α,ω,x均为预设的经验值,t为预设的默认宽度。

在其中一个实施例中,计算第一笔锋点之外笔锋点的宽度,包括:

获取第一个笔锋点对应的宽度,作为笔锋初始宽度;

获取笔锋点与第一个笔锋点的距离;

根据所述初始宽度以及所述距离,得到所述笔锋点的宽度;

其中,笔锋点与第一个笔锋点的距离越大,其对应的宽度越小。

在其中一个实施例中,笔锋点部分的轮廓线构成一个三角形。

在其中一个实施例中,所述确定笔迹的轮廓线,包括:

连接各个触摸点的宽度,得到笔迹的轮廓线。

在其中一个实施例中,所述获取触摸点,包括:

获取usb接口传输的触摸数据;所述usb接口为触摸屏与交互智能平板的主板的连接接口;

解析所述触摸数据得到触摸点。

根据本发明的第二方面,提供一种交互智能平板上的笔迹绘制装置,包括:

输入获取模块,用于获取触摸点;所述触摸点为交互智能平板触摸屏上的笔迹书写事件触发的多个点;

宽度及骨架确定模块,用于计算所述触摸点的宽度,以及计算触摸点对应的笔迹的骨架线;

轮廓确定模块,用于确定笔迹的轮廓线;所述轮廓线根据所述触摸点以及触摸点的宽度得到;

平滑模块,用于获取轮廓线中的拐点,生成所述拐点对应的贝塞尔曲线,作为平滑后的轮廓线;贝塞尔曲线的走向由所述骨架线的走向决定;

渲染模块,用于根据平滑后的轮廓线绘制笔迹。

在其中一个实施例中,所述平滑模块包括:

定点确定单元,用于过参考点作垂直于骨架线的直线;所述参考点为相邻两个触摸点的中心点;获取所述直线与所述轮廓线的交点,作为定点;

控制点确定单元,用于将所述轮廓线中的拐点确定为控制点;

曲线确定单元,用于根据所述控制点和定点生成贝塞尔曲线,得到所述拐点对应的贝塞尔曲线。

在其中一个实施例中,所述宽度及骨架确定模块包括:

骨架确定单元,用于连接相邻两个触摸点,得到触摸点连线;根据所述触摸点连线,得到笔迹的骨架线。

在其中一个实施例中,所述骨架确定单元包括:

角度获取子单元,用于获取相邻两条触摸点连线的夹角;

触摸点分割子单元,用于若存在目标夹角,则以所述目标夹角处的触摸点作为分割点,将所述触摸点分割为第一触摸点集合和第二触摸点集合;目标夹角为所述夹角中小于或者等于90度的夹角;

曲线确定子单元,用于分别得到第一触摸点集合对应的第一贝塞尔曲线、第二触摸点集合对应的第二贝塞尔曲线;

第一骨架确定子单元,用于在所述分割点处,采用棱角方式连通所述第一贝塞尔曲线与第二贝塞尔曲线,得到笔迹的骨架线。

在其中一个实施例中,所述骨架确定单元,还包括:

第二骨架确定子单元,用于若不存在目标夹角,生成所述触摸点对应的贝塞尔曲线,作为笔迹的骨架线。

在其中一个实施例中,所述宽度及骨架确定模块还包括:

宽度确定单元,用于识别所述触摸点中的笔锋点和非笔锋点;分别计算笔锋点、非笔锋点的宽度。

在其中一个实施例中,所述宽度确定单元包括:

速度获取子单元,用于获取触摸点的书写速度;所述触摸点为非笔锋点以及第一个笔锋点;

第一宽度计算子单元,用于根据所述书写速度得到触摸点的宽度;其中,书写速度较大的触摸点对应的宽度、大于书写速度较小的触摸点对应的宽度。

在其中一个实施例中,所述速度获取子单元,具体用于获取触摸点、所述触摸点的前一相邻触摸点之间的距离,将所述距离作为所述触摸点的书写速度。

在其中一个实施例中,所述第一宽度计算子单元,还用于将所述触摸点中的首个触摸点对应的宽度确定为预设的默认宽度。

在其中一个实施例中,所述宽度确定单元,还包括:

第二宽度计算子单元,用于获取第一个笔锋点对应的宽度,作为笔锋初始宽度;获取笔锋点与第一个笔锋点的距离;根据所述初始宽度以及所述距离,得到所述笔锋点的宽度;

其中,笔锋点与第一个笔锋点的距离越大,其对应的宽度越小。

在其中一个实施例中,所述输入获取模块包括:

获取单元,用于获取usb接口传输的触摸数据;所述usb接口为触摸屏与交互智能平板的主板的连接接口;

解析单元,用于解析所述触摸数据得到触摸点。

根据本发明的第三方面,提供一种交互智能平板,包括存储器、具有触摸功能的显示屏以及处理器;所述存储器用于存储计算机程序;当所述计算机程序被所述处理器执行时,使得所述处理器实现上述任一实施例的笔迹绘制方法的步骤。

根据本发明的第四方面,提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一实施例的笔迹绘制方法的步骤。

实施本发明提供的实施例,用户在交互智能平板上进行笔迹书写之后,基于收集到的触摸点,首先计算笔迹的骨架线以及触摸点对应的宽度;然后确定笔迹的轮廓线,该轮廓线根据触摸点及其宽度得到;最后,获取轮廓线中的拐点,生成所述拐点对应的贝塞尔曲线,贝塞尔曲线的走向由所述骨架线的走向决定,作为平滑后的轮廓线;根据平滑后的轮廓线绘制笔迹,由此可以得到流畅平滑的笔迹,提高了笔迹绘制效果。

附图说明

图1为一个实施例中交互智能平板上的笔迹绘制方法适用的硬件环境图;

图2为一实施例的交互智能平板上的笔迹绘制方法的示意性流程图;

图3为一实施例的获取触摸数据的示意性逻辑流程图;

图4为一实施例的计算笔迹骨架线以及触摸点宽度的示意性效果图;

图5为一实施例的确定笔迹轮廓线的示意性效果图;

图6为一实施例的拐点以及定点的示意性效果图;

图7为一实施例的作垂直与骨架线的直线的示意性效果图;

图8a为一实施例的获取到的触摸点的示意图;

图8b为对图8a的触摸点进行分割的示意图;

图8c为图8a的触摸点对应的骨架线的示意图;

图9为一实施例的笔锋触摸点宽度以及笔锋轮廓线的示意图;

图10为一实施例的笔迹绘制装置的示意性结构图;

图11为一个实施例中交互智能平板的内部结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本申请提供的笔迹绘制方法,可以适用于如图1所示的硬件环境中。交互智能平板100内可以安装有多种应用程序,如文本编辑类应用程序、文稿演示类应用程序、即时通讯类应用程序、图像编辑类应用程序等等。其中,文本编辑类应用程序如电子白板应用、电子黑板应用,文稿演示类应用程序如无线投屏应用,即时通讯类应用程序如视频会议应用。

在实施例中,交互智能平板,通过触控技术对显示在平板上的内容进行操控和实现人机交互操作的一体化设备,其集成了投影机、电子白板、幕布、音响、电视机以及视频会议终端等一种或多种功能。

在实施例中,交互智能平板100的显示屏为触摸屏,该触摸屏可以包括:电容屏、电磁屏或红外屏等。一般而言,该触摸屏可以接收用户通过手指或者输入设备输入的触摸操作。其中,输入设备包括但不限定于:电容笔、电磁笔和/或红外笔等。

可选的,交互智能平板100中安装有用于笔迹书写的应用软件,该应用软件可以预先安装在上述交互智能平板100中,也可以是在交互智能平板100启动之后,从第三方设备或服务器进行下载并安装使用。其中,第三方设备在实施例中不作限定。具体地,该应用软件用于根据用户在触摸屏上的笔迹书写事件(属于触摸事件),在交互智能平板100的显示屏上绘制出相应的笔迹。

在一个实施例中,如图2所示,提供了一种笔迹绘制方法,包括以下步骤:

s110,获取触摸点;所述触摸点为交互智能平板触摸屏上的笔迹书写事件触发的多个点。

获取触摸点的步骤,可以理解为获取触摸屏输入的触摸数据的步骤。对于交互智能平板而言,获取触摸屏输入的触摸数据的方式可以采用现有的输入获取方式,即硬件收集触摸消息发送给并发送到交互智能平板的pc系统,以pc系统为windows系统为例,windows系统一方面通过wisp进程收集触摸数据,同时另一方面触发鼠标消息并告诉wpf程序(微软提供的界面框架),wpf程序在收到鼠标消息时,查询wisp进程是否在对应时间收集到触摸数据,若wisp进程在对应时间收集到触摸数据,则wpf程序可以确定系统当前收到触摸消息,进而wpf程序从wisp进程获取触摸数据,解析触摸数据得到触摸点,基于触摸点在交互智能平板的显示屏上绘制笔迹;其实现的逻辑流程参见图3所示。该方式获取触摸屏输入的触摸数据涉及的步骤较多,存在输入获取效率低的问题。

为了克服输入获取效率低的问题,在一实施例中,采用如下方式获取触摸点,即获取usb接口传输的触摸数据,该usb接口为触摸屏与交互智能平板的主板的连接接口;解析该触摸数据得到触摸点。该方法即直接从硬件获取触摸数据,因此提高了触摸数据获取效率。

在交互智能平板中,触摸屏通过usb方式连接交互智能平板的主板,触摸屏会把触摸消息通过usb接口发送到主板;因此可以通过直接读取usb接口的方式获取触摸数据。具体地,获取触摸点的步骤可以包括:在启动过程通过usb接口的pid/vid获取触摸框,创建线程实时检测该触摸框是否发送数据,如果收到触摸框发送的触摸数据,解析触摸数据,得到触摸点。其中,根据usb规范的规定,所有的usb设备都有供应商id(vid)和产品识别码(pid),主机通过不同的vid和pid来区别不同的usb设备。

s120,计算所述触摸点的宽度,以及触摸点对应的笔迹的骨架线。

在步骤s120中,包括计算分为骨架和宽度两部分,其中,笔迹的骨架线可以理解为笔迹的书写轨迹,在获取到触摸点之后,需要把触摸点转换为线,该线即作为笔迹的骨架线,具体实现方式例如:连接相邻两个触摸点,得到触摸点连线;进一步地根据所述触摸点连线,得到笔迹的骨架线,如图4所示。

此外,用户通过触摸屏可以书写不同粗细的笔迹,对应地,本步骤需要计算的触摸点对应的宽度,即可以理解为笔迹的粗细,如图4所示。

s130,确定笔迹的轮廓线;所述轮廓线根据所述触摸点以及触摸点的宽度得到。

在得到各个触摸点及其宽度之后,通过连接宽度对应的包络线,可初步确定笔迹的轮廓线,如图5所示。

s140,获取轮廓线中的拐点,生成所述拐点对应的贝塞尔曲线,作为平滑后的轮廓线;贝塞尔曲线的走向由所述骨架线的走向决定。

如图6所示,在笔迹的轮廓线中,存在一些拐点,如果直接按照该轮廓线绘制笔迹,导致绘制出的笔迹不流畅。本实施例中,通过生成拐点对应的贝塞尔曲线,作为平滑后的轮廓线,由此可以消除轮廓线中的拐点,得到平滑的轮廓线。

如图7所示,在一实施例中,生成拐点对应的贝塞尔曲线的方式例如:过参考点作垂直于骨架线的直线;所述参考点为相邻两个触摸点的中心点;获取所述直线与所述轮廓线的交点,作为定点;将所述轮廓线中的拐点确定为控制点;根据所述控制点和定点生成贝塞尔曲线,得到所述拐点对应的贝塞尔曲线。由此得到的贝塞尔曲线的走向,由所述骨架线的走线决定。

s150,根据平滑后的轮廓线绘制笔迹。

其中,笔迹的绘制方式可以采用现有的笔迹渲染方法,例如,将触摸消息转换为鼠标消息,从鼠标消息的downmoveup进行画线,在down开始画线,move计算要画出来的线,在up结束画线。通过平滑后的轮廓线绘制笔迹,可以得到流畅的书写笔迹。

在交互智能平板中,由于通常采用wpf的path渲染笔迹,但是wpf的渲染需要等待其他的界面元素的渲染,渲染的时间是无法控制,所以无法快速渲染出笔迹,因此存在笔迹延迟。针对该问题,在一实施例中,根据平滑后的轮廓线绘制笔迹的步骤可以包括:在需要绘制笔迹时,创建一个线程,该线程仅用于渲染笔迹,不渲染界面元素,通过该线程绘制笔迹,克服了笔迹延迟的问题。

通过上述实施例的交互智能平板上的笔迹绘制方法,用户在交互智能平板上进行笔迹书写之后,基于收集到的触摸点,首先得到笔迹的骨架线以及触摸点对应的宽度;然后确定笔迹的轮廓线,该轮廓线根据触摸点及其宽度得到;最后,获取轮廓线中的拐点,生成所述拐点对应的贝塞尔曲线,贝塞尔曲线的走向由所述骨架线的走向决定,作为平滑后的轮廓线;根据平滑后的轮廓线绘制笔迹,由此可以得到流畅平滑的笔迹,提高了笔迹绘制效果。

在交互智能平板上,用户的书写笔迹可以包括汉字、数字、英文字母或者图形等;以用户书写汉字和英文字母为例,不同之处包括,汉字书写中存在笔画的棱角,即笔画的转折,而英文字母书写中不存在这样的棱角。然而现有的笔迹绘制方法,均无法区分,因此书写汉字时应该绘制为棱角的地方,被绘制为圆弧,因此现有的笔迹绘制方法还存在笔迹绘制效果不理想的问题。

针对笔迹绘制效果不理想的问题,进一地,在一实施例中,在根据触摸点计算笔迹的骨架线的过程中,具体包括点的分割和点画为线两个步骤。其中,点的分割指的是,识别当前用户书写的笔迹是否为汉字,若是,则以笔画的转折处为分割点,将触摸点进行分割,得到的两部分触摸点;点画为线指的是,对于分割得到的两部分触摸点,可以分别按照惯常方式计算骨架,并且而在分割点处,则采用棱角方式进行画线,以体现汉字的特点。

在一个示例中,上述的根据所述触摸点连线,得到笔迹的骨架线的步骤包括:获取相邻两条触摸点连线的夹角;若存在目标夹角,则以所述目标夹角处的触摸点作为分割点,将所述触摸点分割为第一触摸点集合和第二触摸点集合;目标夹角为所述夹角中小于或者等于90度的夹角;基于贝塞尔算法,分别得到第一触摸点集合对应的第一贝塞尔曲线、第二触摸点集合对应的第二贝塞尔曲线;在所述分割点处,采用棱角方式连通所述第一贝塞尔曲线与第二贝塞尔曲线,得到笔迹的骨架线。

在其他实施例中,如果不存在小于或者等于90度的夹角,则可以直接生成所述触摸点对应的贝塞尔曲线,作为笔迹的骨架线。例如:确定相邻两个触摸点的中心点作为定点,将所述相邻两个触摸点确定为控制点;根据确定出的控制点和定点做贝塞尔曲线,得到触摸点对应的贝塞尔曲线。

为了更好的理解上述的笔迹的骨架线的确定过程,下面结合图8a~8c对骨架线的计算过程进行说明。如图8a,收集到了触摸点71~75,将相邻两个触摸点连接,获取连接线的夹角,发现存在目标夹角(夹角a),基于分割点73将触摸点71~75分割为两部分,一部分为触摸点71、72和73,另一部分为触摸点73、74和75;生成触摸点71、72和73对应的贝塞尔曲线,生成触摸点73、74和75对应的贝塞尔曲线,并且在分割点73处,对两条贝塞尔曲线的交汇处采用棱角方式联通,得到笔迹的骨架线如图8c所示。

通过触摸点连线夹角的角度判断用户希望写的是英文还是汉字,是否需要采用棱角的方式生成骨架线,由此提高了笔迹绘制的美观度。

进一步的,在一个实施例中,计算触摸点对应的宽度的方法包括:识别所述触摸点中的笔锋点和非笔锋点;分别计算笔锋点、非笔锋点的宽度。其中,第一个笔锋点与最后一个非笔锋点相邻,因此,可以采用非笔锋点的宽度计算方式计算第一个笔锋点的宽度。

识别所述触摸点中的笔锋点的方法可以为:从输入可以把笔迹分为多段,使用用户的画线角度和存在downup之间的点集合分段。取一段内最后画出来的35个点或6ms内画出来的点(大于35个点)作为笔锋,其他的点作为正常的笔。正常的笔使用正常的笔的算法,笔锋用笔锋的算法。

在一个示例中,计算非笔锋点以及第一个笔锋点的宽度的方式可以包括:获取触摸点的书写速度;根据所述书写速度得到触摸点的宽度;其中,书写速度较大的触摸点对应的宽度、大于书写速度较小的触摸点对应的宽度。

一般地,触摸屏无法获得用户书写力度,但是可以获得用户书写速度,获取用户书写速度的方法是从收集到的触摸点记录收集时间,在一定时间内,收集到的触摸点的数量越多,那么证明用户书写速度越快;还需要计算触摸点与触摸点之间的距离,通过计算两触摸点的距离和两触摸点的收集时间差,计算出来书写速度。因为收集到的触摸点的时间间隔是只有很小的误差,为了优化计算,在一个实施例中,可以将两个触摸点的直接距离作为触摸点的书写速度v,即,获取触摸点的书写速度可以为:获取触摸点、所述触摸点的前一相邻触摸点之间的距离,将所述距离作为所述触摸点的书写速度。

基于该书写速度确定方法,触摸点中的首个触摸点(非笔锋点)对应的宽度可以等于默认宽度,即用户可以设置线条的宽度,这个设置的宽度为初始宽度。

在一个示例中,计算非笔锋点以及第一个笔锋点的宽度的方法可以为:针对所述首个触摸点之外的触摸点,采用如下公式(1)确定触摸点的宽度:

其中,thiness表示触摸点的宽度,v表示所述触摸点的书写速度,k,α,ω,x,均为常量(均根据经验值预先设定),t为预设的默认宽度。

用户可以预设定最高速度和最低速度,最高速度为通过用户使用数据分析得到,为5单位长度1毫秒,单位长度是收集到的点的坐标对应的单位。触摸屏幕的触摸数据报告的长度和屏幕尺寸dpi都相关,但是单位长度和用户视觉相关,也就是在不同的分辨率、不同的尺寸的屏幕,触摸屏幕的单位尺寸只有很小的误差。

u(v)的计算方式需要满足以下条件:设定用户正常的最低速度ω,例如将ω设定为0~1之间的数值,使用u(v)=max(v-w,x),目的为了防止在书写静止时得到的u(v)为负数,其中常量x的取值需大于0。此外,为了防止当用户的笔迹书写速度太快时,的值较小,导致笔迹宽度过细,通过的值进行调节,以防止的值过小,例如的值不能大于5。

通过上述u(v)的计算方式,最后得到的触摸点对应的宽度thiness满足条件:在用户书写速度较快时,触摸点对应的宽度最小不能低于默认宽度的80%;在用户使用很慢速度书写笔迹的时候,触摸点对应的宽度最大不能超过默认宽度的120%,所以常量a可以为a=t/1.2。

由此,用户若快速书写,显示出来的笔迹就略细,用户慢速书写,显示出来的笔迹就略宽,但是笔迹的粗细会在一定的范围内,避免出现笔迹过宽或者过细,或者笔迹粗细不均匀的现象。

进一步地,对于笔锋的宽度计算,不同于非笔锋部分的宽度计算,例如,计算第一笔锋点之外笔锋点的宽度的方法可以为:

获取第一个笔锋点对应的宽度,作为笔锋初始宽度;获取笔锋点与第一个笔锋点的距离;根据所述初始宽度以及所述距离,得到所述笔锋点的宽度;其中,笔锋点与第一个笔锋点的距离越大,其对应的宽度越小。

在一个例子中,由此得到的笔锋的轮廓线可以参照图9所示,笔锋点部分的轮廓线构成一个三角形。最上面的宽度就是第一个笔锋点的宽度,其余每个笔锋点的宽度就是该点和第一个笔锋点的距离计算出来的宽度。

最后,基于计算得到的触摸点的宽度和骨架线,最后连接出一个封闭的图像,即得到笔迹的轮廓线,然后通过二次贝塞尔曲线方法得到平滑的轮廓线,在渲染阶段,通过启动一个独立的线程进行笔迹绘制,包括基于轮廓线填充笔迹颜色,完成笔迹的绘制。

通过上述实施例的交互智能平板上的笔迹绘制方法,一方面可以得到流畅的笔迹绘制效果,另一方面,还提高了笔迹绘制的效率,有利于实现书写即显示的效果。

应该理解的是,对于前述的各方法实施例,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,方法实施例的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

基于与上述实施例中的笔迹绘制方法相同的思想,本文还提供笔迹绘制装置。

在一个实施例中,如图10所示,本实施例的笔迹绘制装置包括:输入获取模块501、宽度及骨架确定模块502、轮廓确定模块503、平滑模块504以及渲染模块505,其中各模块详述如下:

输入获取模块501,用于获取触摸点;所述触摸点为交互智能平板触摸屏上的笔迹书写事件触发的多个点;

宽度及骨架确定模块502,用于计算所述触摸点的宽度,以及计算触摸点对应的笔迹的骨架线;

轮廓确定模块503,用于确定笔迹的轮廓线;所述轮廓线根据所述触摸点以及触摸点的宽度得到;

平滑模块504,用于获取轮廓线中的拐点,生成所述拐点对应的贝塞尔曲线,作为平滑后的轮廓线;贝塞尔曲线的走向由所述骨架线的走向决定;

渲染模块505,用于根据平滑后的轮廓线绘制笔迹。

在一实施例中,所述平滑模块504进一步包括:

定点确定单元,用于过参考点作垂直于骨架线的直线;所述参考点为相邻两个触摸点的中心点;获取所述直线与所述轮廓线的交点,作为定点;

控制点确定单元,用于将所述轮廓线中的拐点确定为控制点;

曲线确定单元,用于根据所述控制点和定点生成贝塞尔曲线,得到所述拐点对应的贝塞尔曲线。

在一实施例中,所述宽度及骨架确定模块502包括:

骨架确定单元,用于连接相邻两个触摸点,得到触摸点连线;根据所述触摸点连线,得到笔迹的骨架线。

在一实施例中,所述骨架确定单元进一步包括:

角度获取子单元,用于获取相邻两条触摸点连线的夹角;

触摸点分割子单元,用于若存在目标夹角,则以所述目标夹角处的触摸点作为分割点,将所述触摸点分割为第一触摸点集合和第二触摸点集合;目标夹角为所述夹角中小于或者等于90度的夹角;

曲线确定子单元,用于分别得到第一触摸点集合对应的第一贝塞尔曲线、第二触摸点集合对应的第二贝塞尔曲线;

第一骨架确定子单元,用于在所述分割点处,采用棱角方式连通所述第一贝塞尔曲线与第二贝塞尔曲线,得到笔迹的骨架线。

在一实施例中,所述骨架确定单元进一步还包括:

第二骨架确定子单元,用于若不存在目标夹角,生成所述触摸点对应的贝塞尔曲线,作为笔迹的骨架线。

在一实施例中,所述宽度及骨架确定模块还包括:

宽度确定单元,用于识别所述触摸点中的笔锋点和非笔锋点;分别计算笔锋点、非笔锋点的宽度。

在一实施例中,该宽度确定单元具体可以包括:

速度获取子单元,用于获取触摸点的书写速度;所述触摸点为非笔锋点以及第一个笔锋点;

第一宽度计算子单元,用于根据所述书写速度得到触摸点的宽度;其中,书写速度较大的触摸点对应的宽度、大于书写速度较小的触摸点对应的宽度。

在一实施例中,该速度获取子单元,具体用于获取触摸点、所述触摸点的前一相邻触摸点之间的距离,将所述距离作为所述触摸点的书写速度。

在一实施例中,上述的第一宽度计算子单元,还用于将所述触摸点中的首个触摸点对应的宽度确定为预设的默认宽度。

在一实施例中,上述的宽度确定单元,还包括:

第二宽度计算子单元,用于获取第一个笔锋点对应的宽度,作为笔锋初始宽度;获取笔锋点与第一个笔锋点的距离;根据所述初始宽度以及所述距离,得到所述笔锋点的宽度;

其中,笔锋点与第一个笔锋点的距离越大,其对应的宽度越小。

上述的输入获取模块501包括:

获取单元,用于获取usb接口传输的触摸数据;所述usb接口为触摸屏与平板系统的连接接口;

解析单元,用于解析所述触摸数据得到触摸点。

关于笔迹绘制装置的具体限定可以参见上文中对于笔迹绘制方法的限定,在此不再赘述。上述笔迹绘制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于交互智能平板中的处理器中,也可以以软件形式存储于交互智能平板中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

此外,上述示例的笔迹绘制装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述笔迹绘制装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。

在一个实施例中,提供了一种交互智能平板,其内部结构图可以如图11所示。该交互智能平板包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,处理器用于提供计算和控制能力;存储器包括非易失性存储介质、内存储器,该非易失性存储介质存储有操作系统和计算机程序,该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境;网络接口用于与外部的终端通过网络连接通信;该计算机程序被处理器执行时以实现一种笔迹绘制方法;显示屏可以是液晶显示屏或者电子墨水显示屏;输入装置可以是显示屏上覆盖的触摸层,也可以是交互智能平板外壳上设置的按键、轨迹球或触控板,还可以是外接的触控板或鼠标等。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的交互智能平板的限定,具体的交互智能平板可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种交互智能平板,包括存储器、具有触摸功能的显示屏以及处理器;所述存储器,用于存储计算机程序;当所述计算机程序被所述处理器执行时,使得所述处理器实现以下步骤:

获取触摸点;所述触摸点为交互智能平板触摸屏上的笔迹书写事件触发的多个点;

计算所述触摸点的宽度,以及计算触摸点对应的笔迹的骨架线;

确定笔迹的轮廓线;所述轮廓线根据所述触摸点以及触摸点的宽度得到;

获取轮廓线中的拐点,生成所述拐点对应的贝塞尔曲线,作为平滑后的轮廓线;贝塞尔曲线的走向由所述骨架线的走向决定;

根据平滑后的轮廓线绘制笔迹。

在一个实施例中,当所述计算机程序被所述处理器执行时,还使得所述处理器实现上述其他实施例的笔迹绘制方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取触摸点;所述触摸点为交互智能平板触摸屏上的笔迹书写事件触发的多个点;

计算所述触摸点的宽度,以及计算触摸点对应的笔迹的骨架线;

确定笔迹的轮廓线;所述轮廓线根据所述触摸点以及触摸点的宽度得到;

获取轮廓线中的拐点,生成所述拐点对应的贝塞尔曲线,作为平滑后的轮廓线;贝塞尔曲线的走向由所述骨架线的走向决定;

根据平滑后的轮廓线绘制笔迹。

在一个实施例中,该计算机程序被处理器执行时还实现上述其他实施例的笔迹绘制方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。上述各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

实施例中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

实施例中提及的“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

以上实施例仅表达了本发明的几种实施方式,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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