触摸屏手写输入呈现为具有型笔特征笔迹的方法与流程

文档序号:15046870发布日期:2018-07-27 22:51阅读:176来源:国知局

本发明涉及触摸屏书写笔迹的呈现方法,具体是一种触摸屏书写单点轨迹呈现为具有型笔特征笔迹的方法。

技术背景:

随着电子显示技术、触摸屏技术快速发展,触摸显示屏已经大量使用在交互式计算机系统设备上,比如:课堂教学中使用的各类交互式电子板系统,各类智能手机及手持设备。在这些设备中,都提供了手写输入的功能。大家都知道:现有的触摸屏书写输入的笔迹本质上是一个单点轨迹序列,所以手写输入产品大都直接用直线链接轨迹点,显示符合于输入轨迹的线条,最终显示出要输入的符号、不同国家的语音元素。这种笔迹呈现,字迹呆板,计算机书写特征明显,根本不能反映不同书写者的型笔风格。随着手写输入的应用与普及,计算机软件用什么方法能将这种单点序列的轨迹,根据触摸书写时轨迹形成的特点,呈现为美观漂亮的具有普通书写形笔特征的笔迹(比如钢笔、粉笔、毛笔等等形笔)一直是大家关注研究的问题。在这些研究过程中也出现了一些方法与专利:比如cn103257735a《手写输入的笔划呈现方法与电子装置》、申请号201510401837.1《应用于毛笔的书写笔迹呈现方法和装置》等等,然而它们都没有很好地解决这个问题。这一问题的解决对一些手持设备的汉字识别不是很重要,但对于一对多的交流场所使用的触摸书写设备,比如课堂教学的交互式电子黑板系统产品来讲,解决这一问题是至关重要的。因为触摸书写时能不能呈现出美观漂亮的具有普通书写形笔特征的笔迹、能不能呈现出不同教师的板书(写)特征,直接影响到交互式电子黑板系统在课堂教学中的普及应用。

针对这一问题,我们对普通书写形笔笔迹的共性特征(比如钢笔、粉笔、毛笔等等形笔)进行了大量的研究,获得了在普通触摸屏(即非压力屏)基础上的,《触摸屏手写输入单点轨迹呈现为具有型笔特征笔迹的方法》的技术方案,它在触摸书写轨迹呈现软件中的使用对触摸屏手写输入产品、尤其是对交互式电子黑板系统在课堂教学中的普及应用有着重大的现实意义。



技术实现要素:

本发明的目的在于解决现有使用普通触摸屏(即非压力屏)的触摸手写输入产品在书写呈现时,采用“直接用直线链接轨迹点,显示符合于输入轨迹的线条”的方法,所带来的呈现字迹呆板,计算机书写特征明显,不能反映不同书写者的型笔风格的问题,提供一种触摸屏手写输入的单点轨迹呈现为具有型笔特征笔迹的方法。

为有助于理解本发明,首先对笔迹呈现方法的基本内容说明如下:

任何触摸书写轨迹的呈现方法,其核心是获取轨迹上任意相邻两个轨迹点的坐标及其它特征后,两点之间的呈现方法。这个核心决定了有数个轨迹点的的一个笔画的呈现,进而决定了所有书写笔迹的的呈现。

每一笔画轨迹的笔迹呈现是通过重复轨迹上相邻两点的笔迹呈现实现的。

在一个笔画上,有多个轨迹点,每一点都有一个笔迹呈现宽度,每一点的笔迹呈现宽度是一个相对固定值drawwidth的m倍,m取值为1到k之间的实数(k为一整数,一般可取5-20之间的整数),drawwidth*1是笔迹呈现的最小宽度,drawwidth*k是笔画的最大笔迹呈现宽度,每一点对应的m是由相邻点触摸移动到这一点的速度与k决定的,m的值等于这个速度除k。当一个点是笔画轨迹的起笔点或者从轨迹上相邻点移动到这一点的速度小于某一阀值时,这一点的笔迹呈现宽度为最大笔迹呈现宽度drawwidth*k;所以drawwidth*k也可称为笔画的起笔呈现宽度。

每一笔画轨迹上相邻两点的笔迹呈现是通过在两个点中等距离插入n-1个点,并且根据轨迹上相邻两点的笔迹呈现宽度为n-1个点线性插入n-1个笔迹呈现宽度,最后在n+1个点中,对所有相邻的两点,通过这两点及“和这两点、这两点处的笔迹呈现宽度、笔迹倾斜角相关的”四个辅助点,画六条直线段实现的。

为实现上述目的,本发明提供如下技术方案:

一种触摸屏手写输入单点轨迹呈现为具有型笔特征笔迹的方法,包括如下步骤:

一、初始化

1、设置一个计时器j(计数器),用于记录从轨迹上相邻两点的前一点到后一点的触摸移动时间;

2、定义三个数组a(n)、b(1,n)、c(1,3),n取值范围一般情况下为3到100的整数:

a(n)中a(0)、a(n)分别用于存放轨迹上相邻两点的前一点、后一点的笔迹呈现宽度,a(1)…a(n-1)用于存放轨迹上相邻两点的中间等距插值点的笔迹呈现宽度;

[b(0,0),b(1,0)],[b(0,n),b(1,n)]分别用于存放轨迹上相邻两点的前一点、后一点的坐标,[b(0,1),b(1,1)]…[b(0,n-1),b(1,n-1)]存放轨迹上相邻两点的中间等距插值点的坐标;

[c(0,0),c(1,0)]、[c(0,1),c(1,1)]、[c(0,2),c(1,2)]、[c(0,3),c(1,3)]分别用于存放笔迹呈现时需要的四个辅助点1点、2点、3点、4点的坐标,这四个点是与[b(0,h),b(1,h)]、[b(0,h+1),b(1,h+1)]、点[b(0,h),b(1,h)]、[b(0,h+1),b(1,h+1)]处的笔迹呈现宽度a(h)、a(h+1)及笔迹倾斜角相关的(0<=h<=n-1);

3、定义一画直线的基本宽度整数常量drawwidth,取值范围一般为1-10,改变它可以改变整体笔迹呈现的粗细程度;

4、定义一决定每一笔画的最大笔迹呈现宽度的常量k,取值范围一般为5-20之间的整数,改变它也可以改变整体笔迹呈现的粗细程度;

5、定义一笔画起笔倾斜角常量g,取值范围0到60度,它为笔画起笔时“笔迹线与单点移动轨迹的垂线的倾斜角;

6、定义一笔迹倾斜角变量p,用于存放所有笔迹呈现需要倾斜的笔迹线与x轴的夹角,笔迹倾斜角与相邻两点的连线方向及笔画起笔倾斜角常量g有关;

二、获取触摸轨迹的下一触摸点(或第一触摸点)坐标,将坐标赋值给[b(0,n),b(1,n)],判断是否为第一触摸点,若是:将最大笔迹呈现宽度drawwidth*k赋值到a(n)中,计时器j清零,开始计时,转步骤三中(7);若不是转下一步;

三、轨迹上相邻两点笔迹呈现的具体步骤如下:

(1)通过[b(0,0),b(1,0)],[b(0,n),b(1,n)]两点坐标计算两点的距离;

(2)上述距离除于计时器j的值获得在轨迹上相邻两点间的触摸移动速度,计时器j清零,重新开始计时;

(3)用笔画的最大笔迹呈现宽度drawwidth*k除以相邻两点间的触摸移动速度得到后一点处的笔迹呈现宽度,为a(n)赋值;若速度小于某一阀值时,用最大笔迹呈现宽度drawwidth*k为后一点的笔迹呈现笔宽a(n)赋值;

(4)根据[b(0,0),b(1,0)],[b(0,n),b(1,n)]轨迹上相邻两点的坐标值,用等距离插值的方法,在两点间插入n-1个点,计算出坐标,并赋值到[b(0,1),b(1,1)]…[b(0,n-1),b(1,n-1)]中;根据轨迹上相邻两点的笔迹呈现宽度a(0)、a(n)的值用线性的方法计算n-1个插入点处的笔迹呈现宽度,为a(1)…a(n-1)赋值;

(5)根据轨迹上相邻两点坐标[b(0,0),b(1,0)],[b(0,n),b(1,n)]、计算两轨迹点连线的垂线与横向坐标轴正向的夹角,再与g相加得到本次笔迹呈现笔迹倾斜角p;

(6)对n+1个点中的n组相邻点的两点[b(0,h),b(1,h)],[b(0,h+1),b(1,h+1)]进行笔迹呈现(0<=h<=n-1):

①根据p与点[b(0,h+1),b(1,h+1)]处的坐标、笔迹呈现宽度a(h+1)计算笔迹呈现时需要的两个辅助点3点、4点的坐标为[c(0,2),c(1,2)]、[c(0,3),c(1,3)]赋值;

②若点[b(0,h),b(1,h)]是一笔画的起笔点,则根据p与点[b(0,h),b(1,h)]处的坐标、笔迹呈现宽度a(h)(这时是笔迹的最大笔迹呈现宽度)计算笔迹呈现时需要的两个辅助点1点、2点的坐标为[c(0,0),c(1,0)]、[c(0,1),c(1,1)]赋值;若点[b(0,h),b(1,h)]不是一笔画的起笔点,则[c(0,0),c(1,0)]、[c(0,1),c(1,1)]的值是在上一次笔迹呈现的第④步赋予的;

③使用画直线的基本宽度drawwidth划如下六条线段:

[b(0,h),b(1,h)]-[c(0,1),c(1,1)](2点);

[c(0,1),c(1,1)](2点)-[c(0,2),c(1,2)](3点)

[c(0,2),c(1,2)](3点)-[c(0,3),c(1,3)](4点)

[c(0,3),c(1,3)](4点)-[c(0,0),c(1,0)](1点)

[c(0,0),c(1,0)](1点)-[b(0,h),b(1,h)]

[b(0,h),b(1,h)]-[b(0,h+1),b(1,h+1)]

④辅助点4点的坐标值[c(0,3),c(1,3)]赋予辅助点1点的坐标值[c(0,0),c(1,0)],辅助点3点的坐标值[c(0,2),c(1,2)]赋予辅助点2点的坐标值[c(0,1),c(1,1)]

⑤若[b(0,h+1),b(1,h+1)]已经是轨迹上相邻两点的后一点,即h+1=n,转(7);

⑥h=h+1转①

(7)判断[b(0,n),b(1,n)]点是否为触摸轨迹上最后一点,若是,转步骤四;若否,则a(n)的值赋予a(0);[b(0,n),b(1,n)]赋值与[b(0,0),b(1,0)],转步骤二;

四、单点轨迹呈现为具有型笔特征笔迹的方法结束。

本发明有益效果:本发明是针对现有触摸书写产品呈现字迹呆板,计算机书写特征明显,不能反映不同书写者的型笔风格的问题,通过对普通书写形笔笔迹的共性特征(比如钢笔、粉笔、毛笔等等形笔)以及触摸屏书写时能够获取的除触摸点轨迹以外的触摸书写特征的研究,获得的在普通触摸屏(即非压力屏)基础上的《触摸屏手写输入单点轨迹呈现为具有型笔特征笔迹的方法》的技术方案,本方案在触摸书写轨迹呈现软件中使用能够使触摸书写呈现出普通型笔书写的笔迹特征,对触摸屏手写输入产品、尤其是对交互式电子黑板系统在课堂教学中的普及应用有着重大的现实意义。

附图说明

图1呈现方法中定义的数组示意图

图2呈现方法中的起笔倾斜角常量g、笔迹倾斜角变量p示意图

图3呈现方法中的轨迹上相邻两点笔迹呈现的具体步骤示意图

具体实施方式

以下结合附图对本发明做出进一步详细说明。

实施例1

任何触摸书写轨迹的呈现方法,其核心是获取轨迹上任意相邻两个轨迹点的坐标及其它特征后,两点之间的呈现方法。这个核心决定了有数个轨迹点的的一个笔画的呈现,进而决定了所有书写笔迹的的呈现。

本笔迹呈现方法的基本说明:

每一笔画轨迹的笔迹呈现是通过重复轨迹上相邻两点的笔迹呈现实现的。如图3b所示。

在一个笔画上,有多个轨迹点,每一点都有一个笔迹呈现宽度,每一点的笔迹呈现宽度是一个相对固定值2(drawwidth取值为2)的m倍,m取值为1到10(k取值10)之间的实数(k为一整数,一般可取5-20之间的整数,本例中取10),2*1是笔迹呈现的最小宽度,2*10是笔画的最大笔迹呈现宽度,每一点对应的m是由相邻点触摸移动到这一点的速度与10(k)决定的,m的值等于这个速度除10(k)。当一个点是笔画轨迹的起笔点或者从轨迹上相邻点移动到这一点的速度小于1.1(某一阀值时),这一点的笔迹呈现宽度为最大笔迹呈现宽度2*10(drawwidth*k);所以2*10(drawwidth*k)也可称为笔画的起笔呈现宽度。

每一笔画轨迹上相邻两点的笔迹呈现是通过在两个点中等距离插入8-1个点,并且根据轨迹上相邻两点的笔迹呈现宽度为8-1个点线性插入8-1个笔迹呈现宽度,最后在8+1个点中,对所有相邻的两点,通过这两点及“和这两点、这两点处的笔迹呈现宽度、笔迹倾斜角相关的”四个辅助点,画六条直线段实现的。如图3c…h。

如图1-3所示的一种触摸屏手写输入单点轨迹呈现为具有型笔特征笔迹的方法,包括如下步骤:

一、初始化

1、设置一个计时器j(计数器),用于记录从轨迹上相邻两点的前一点到后一点的触摸移动时间;

2、定义三个数组a(8)、b(1,8)、c(1,3),如图1所示;

a(8)中a(0)、a(8)分别用于存放轨迹上相邻两点的前一点、后一点的笔迹呈现宽度,a(1)…a(7)用于存放轨迹上相邻两点的中间等距插值点的笔迹呈现宽度;

[b(0,0),b(1,0)],[b(0,8),b(1,8)]分别用于存放轨迹上相邻两点的前一点、后一点的坐标,[b(0,1),b(1,1)]…[b(0,7),b(1,7)]存放轨迹上相邻两点的中间等距插值点的坐标;

[c(0,0),c(1,0)]、[c(0,1),c(1,1)]、[c(0,2),c(1,2)]、[c(0,3),c(1,3)]分别用于存放笔迹呈现时需要的四个辅助点1点、2点、3点、4点的坐标,这四个点是与[b(0,h),b(1,h)]、[b(0,h+1),b(1,h+1)]、点[b(0,h),b(1,h)]、[b(0,h+1),b(1,h+1)]处的笔迹呈现宽度a(h)、a(h+1)及笔迹倾斜角相关的(0<=h<=7);

3、定义一画直线的基本宽度整数常量drawwidth,取值为2,改变它可以改变整体笔迹呈现的粗细程度;

4、定义一决定每一笔画的最大笔迹呈现宽度的常量k,取值为10,改变它也可以改变整体笔迹呈现的粗细程度;

5、定义一笔画起笔倾斜角常量g,取值范围45度,它为笔画起笔时“笔迹线与单点移动轨迹的垂线的倾斜角,如图2所示;

6、定义一笔迹倾斜角变量p,用于存放所有笔迹呈现需要倾斜的笔迹线与x轴的夹角,笔迹倾斜角与相邻两点的连线方向及笔画起笔倾斜角常量g有关,本例中为:计算两轨迹点连线的垂线与横向坐标轴正向的夹角,再于与45度(g的值)相加,得到本次笔迹呈现笔迹倾斜角p,如图2所示;

二、获取触摸轨迹的下一触摸点(或第一点)坐标,将坐标赋值给[b(0,8),b(1,8)],判断是否为第一触摸点,若是:将最大笔迹呈现宽度2*10(drawwidth*k的值,这时k取值为10),赋值到a(8)中,计时器j清零,开始计时,转步骤三中(7);若不是转下一步;

三、轨迹上相邻两点笔迹呈现的具体步骤如下:

(1)通过[b(0,0),b(1,0)],[b(0,8),b(1,8)]两点坐标计算两点的距离;如图3中c所示;

(2)上述距离除于计时器j的值获得在轨迹上相邻两点间的触摸移动速度,如图3中c,所示计时器j清零,重新开始计时;

(3)用笔画的最大笔迹呈现宽度2*10(drawwidth*k的值)除以相邻两点间的触摸移动速度得到后一点处的笔迹呈现宽度,为a(8)赋值;若速度小于1.1时(某一阀值)时,用最大笔迹呈现宽度2*10(drawwidth*k的值)为后一点的笔迹呈现笔宽a(8)赋值;如图3中c所示;

(4)根据[b(0,0),b(1,0)],[b(0,8),b(1,8)]轨迹上相邻两点的坐标值,用等距离插值的方法,在两点间插入8-1个点,计算出坐标,并赋值到[b(0,1),b(1,1)]…[b(0,8-1),b(1,8-1)]中,如图3中d所示;根据轨迹上相邻两点的笔迹呈现宽度a(0)、a(8)的值用线性的方法计算8-1个插入点处的笔迹呈现宽度,为a(1)…a(8-1)赋值,如图3中e所示;

(5)根据轨迹上相邻两点坐标[b(0,0),b(1,0)],[b(0,8),b(1,8)]、计算两轨迹点连线的垂线与横向坐标轴正向的夹角,再与45度(g的值)相加,得到本次笔迹呈现笔迹倾斜角p,如图3中f所示;

(6)对8+1个点中的8组相邻点的两点[b(0,h),b(1,h)],[b(0,h+1),b(1,h+1)]进行笔迹呈现(0<=h<=8-1):如图3中g、h所示。

①根据p与点[b(0,h+1),b(1,h+1)]处的坐标、笔迹呈现宽度a(h+1)计算笔迹呈现时需要的两个辅助点3点、4点的坐标为[c(0,2),c(1,2)]、[c(0,3),c(1,3)]赋值;点[b(0,h+1),b(1,h+1)]是3点、4点线段的等分点,如图3中g所示;

②若点[b(0,h),b(1,h)]是一笔画的起笔点,则根据p与点[b(0,h),b(1,h)]处的坐标、笔迹呈现宽度a(h)(这时是笔迹的最大笔迹呈现宽度)计算笔迹呈现时需要的两个辅助点1点、2点的坐标为[c(0,0),c(1,0)]、[c(0,1),c(1,1)]赋值,如图3g所示;若点[b(0,h),b(1,h)]不是一笔画的起笔点,则[c(0,0),c(1,0)]、[c(0,1),c(1,1)]的值是在上一次笔迹呈现的第④步赋予的;

③使用画直线的基本宽度2(drawwidth的值)划如下六条线段,如图3中h所示;

[b(0,h),b(1,h)]-[c(0,1),c(1,1)](2点);

[c(0,1),c(1,1)](2点)-[c(0,2),c(1,2)](3点)

[c(0,2),c(1,2)](3点)-[c(0,3),c(1,3)](4点)

[c(0,3),c(1,3)](4点)-[c(0,0),c(1,0)](1点)

[c(0,0),c(1,0)](1点)-[b(0,h),b(1,h)]

[b(0,h),b(1,h)]-[b(0,h+1),b(1,h+1)]

④辅助点4点的坐标值[c(0,3),c(1,3)]赋予辅助点1点的坐标值[c(0,0),c(1,0)],辅助点3点的坐标值[c(0,2),c(1,2)]赋予辅助点2点的坐标值[c(0,1),c(1,1)];

⑤若[b(0,h+1),b(1,h+1)]已经是轨迹上相邻两点的后一点,即h+1=8,转(7);

⑥h=h+1转①;

(7)判断[b(0,8),b(1,8)]点是否为触摸轨迹上最后一点,若是转转步四;若否,则a(8)的值赋予a(0);[b(0,8),b(1,8)]赋值与[b(0,0),b(1,0)],转步骤二;

四、单点轨迹呈现为具有型笔特征笔迹的方法结束;

本方法的呈现效果如图3中a、b所示。

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