一种绘制预测补偿方法和系统技术领域
本发明涉及电子领域,特别是指一种绘制预测补偿方法和系统。
背景技术
目前,在Android平台下进行书写时,绘制轨迹比系统刷新要慢。绘制
的越快,绘制与刷新之间的时间差会越明显,刷新不及时给用户造成视觉的
差异。
发明内容
有鉴于此,本发明的目的在于提出一种绘制预测补偿方法和系统,能够
对绘制算法进行改进,减少绘制与刷新的视觉差异。
基于上述目的本发明提供的绘制预测补偿方法,包括步骤:
第一步,触发鼠标绘制事件;
第二步,判断鼠标是否处于落压状态,如果是则进行步骤三,如果不是
则进行步骤六;
第三步,清空预先设置的绘制点表;
第四步,将鼠标事件点信息加入到绘制点表中;
第五步,根据绘制点表中的点信息拟合绘制轨迹,然后返回步骤一;
第六步,判断鼠标是否处于移动状态,如果是则进行步骤七,如果不是
则执行步骤十一;
第七步,将鼠标事件点信息加入到预先设置的绘制点表中;
第八步,判断所述绘制点表中的事件点信息是否大于或等于预先设定的
阈值,如果不是则返回步骤五,如果是则进行步骤九;
第九步,计算获得预测点位置信息;
第十步,根据获得的预测点和绘制点表中所有的信息拟合绘制轨迹,然
后返回步骤一;
第十一步,判断鼠标是否处于抬起状态,如果是则将鼠标事件点信息加
入到绘制点表中,然后根据绘制点表中的点信息拟合绘制轨迹再退出;如果
不是则直接退出。
可选地,所述的绘制点表记录了每个事件点的坐标和获取的时间。
进一步地,所述预先设定的阈值为3。
进一步地,所述第九步提取所述绘制点表中最后存储的三个事件点信
息,计算获得预测点位置信息。
进一步地,所述提取所述绘制点表中最后存储的三个事件点信息,计算
获得预测点位置信息包括:
根据先后顺序依次分别获得最后存入的事件点信息A1、倒数第二存入的
事件点信息A2、倒数第三存入的事件点信息A3的坐标和获取时间,即
A1(x1,y1)、A2(x2,y2)、A3(x3,y3)和T1、T2、T3;然后根据公式V3=(A3-
A2)/(T3-T2)获得A2A3段的平均速度V3,根据公式V2=(A2-A1)/(T2-T1)获得
A1A2段的平均速度V2,根据公式a2=V3-V2获得A2点的瞬时加速度a2;
再者,预测点与最后存入的事件点之间的线段的平均速度V4=a2+V3,然
后,求得预测点的位置A4=V4*Ta+A3;其中,所述的Ta是绘制点表中最后存储
的三个事件点的获取时间的平均值,即Ta=(T1+T2+T3)/3。
可选地,所述计算获得预测点位置信息后,判断是否为第一次预测,如
果是则直接进行步骤十一;如果不是则先删除上一次根据预测点绘制的轨
迹,然后进行步骤十一。
进一步地,所述获得的预测点信息存储在预先设置的预测点列表中,该
列表包括预测点的坐标。
进一步地,所述在判断是否为第一次预测时通过查看预先设置的预测点
列表中是否保存有预测点信息,有则说明不是第一次预测,否则是第一次预
测。
进一步地,所述的拟合、绘制曲线采用的都是贝塞尔方法。
另外,本发明还提供了一种绘制预测补偿系统,包括依次连接的事件触
发单元、落压状态判断单元、移动状态判断单元和抬起状态判断单元;所述
事件触发单元触发鼠标绘制事件,然后所述落压状态判断单元判断鼠标是否
处于落压状态,如果是则清空预先设置的绘制点表,将鼠标事件点信息加入
到绘制点表中,根据绘制点表中的点信息拟合绘制轨迹;如果不是则与所述
移动状态判断单元相连;
所述移动状态判断单元判断鼠标是否处于移动状态,如果是则将鼠标事
件点信息加入到预先设置的绘制点表中,判断所述绘制点表中的事件点信息
是否大于或等于预先设定的阈值,如果不是则根据绘制点表中的点信息拟合
绘制轨迹,如果是则提取绘制点表中最后存储的三个事件点信息,获得预测
点位置信息,然后根据获得的预测点和绘制点表中所有的信息拟合绘制轨
迹;
如果不是则与所述抬起状态判断单元相连,所述抬起状态判断单元判断
鼠标是否处于抬起状态,如果是则将鼠标事件点信息加入到绘制点表中,然
后根据绘制点表中的点信息拟合绘制轨迹再退出;如果不是则直接退出。
可选地,所述的绘制点表记录了每个事件点的坐标和获取的时间。
进一步地,所述预先设定的阈值为3。
进一步地,所述计算获得预测点位置信息采用提取所述绘制点表中最后
存储的三个事件点信息,包括:
根据先后顺序依次分别获得最后存入的事件点信息A1、倒数第二存入的
事件点信息A2、倒数第三存入的事件点信息A3的坐标和获取时间,即
A1(x1,y1)、A2(x2,y2)、A3(x3,y3)和T1、T2、T3;然后根据公式V3=(A3-
A2)/(T3-T2)获得A2A3段的平均速度V3,根据公式V2=(A2-A1)/(T2-T1)获得
A1A2段的平均速度V2,根据公式a2=V3-V2获得A2点的瞬时加速度a2;
再者,预测点与最后存入的事件点之间的线段的平均速度V4=a2+V3,然
后,求得预测点的位置A4=V4*Ta+A3;其中,所述的Ta是绘制点表中最后存储
的三个事件点的获取时间的平均值,即Ta=(T1+T2+T3)/3。
进一步地,所述计算获得预测点位置信息后,判断是否为第一次预测,
如果是则直接所述移动状态判断单元和所述抬起状态判断单元相连;如果不
是则先删除上一次根据预测点绘制的轨迹,然后所述移动状态判断单元和所
述抬起状态判断单元相连。
进一步地,所述获得的预测点信息存储在预先设置的预测点列表中,该
列表包括预测点的坐标。
进一步地,所述在判断是否为第一次预测时通过查看预先设置的预测点
列表中是否保存有预测点信息,有则说明不是第一次预测,否则是第一次预
测。
进一步地,所述的拟合、绘制曲线采用的都是贝塞尔方法。
从上面所述可以看出,本发明提供的绘制预测补偿方法和系统,通过判
断鼠标是否处于落压状态,若是清空预先设置的绘制点表,将鼠标事件点信
息加入到绘制点表中,根据绘制点表中的点信息拟合绘制轨迹;若不是判断
鼠标是否处于移动状态,若是鼠标事件点信息加入到预先设置的绘制点表
中,判断绘制点表中的事件点信息是否大于或等于预先设定的阈值,计算获
得预测点位置信息,根据获得的预测点和绘制点表中所有的信息拟合绘制轨
迹;若不是判断鼠标是否处于抬起状态,若是将鼠标事件点信息加入到绘制
点表中,根据绘制点表中的点信息拟合绘制轨迹再退出;若不是直接退出。
从而,所述绘制预测补偿方法和系统能够通过绘制轨迹及绘制速度对当前绘
制轨迹进行相应的补偿,很大程度上改善了绘制刷新不及时给用户造成的视
觉落差。
附图说明
图1为本发明实施例绘制预测补偿方法的流程示意图;
图2为本发明另一实施例绘制预测补偿方法的流程示意图;
图3为本发明实施例绘制预测补偿系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施
例,并参照附图,对本发明进一步详细说明。
在本发明的一个实施例中,如图1所示,为本发明实施例绘制预测补偿
方法的流程示意图,所述绘制预测补偿方法包括:
步骤101,触发鼠标绘制事件。
步骤102,判断鼠标是否处于落压状态,如果是则进行步骤103,如果不
是则进行步骤106。
步骤103,清空预先设置的绘制点表。
步骤104,将鼠标事件点信息加入到绘制点表中。
步骤105,根据绘制点表中的点信息拟合绘制轨迹,然后返回步骤101。
步骤106,判断鼠标是否处于移动状态,如果是则进行步骤107,如果不
是则执行步骤111。
步骤107,将鼠标事件点信息加入到预先设置的绘制点表中。
步骤108,判断所述绘制点表中的事件点信息是否大于或等于3,如果不
是则返回步骤105,如果是则进行步骤109。
步骤109,提取绘制点表中最后存储的三个事件点信息,获得预测点位
置信息。
步骤110,根据获得的预测点和绘制点表中所有的信息拟合绘制轨迹,
然后返回步骤101。
步骤111,判断鼠标是否处于抬起状态,如果是则将鼠标事件点信息加
入到绘制点表中,然后根据绘制点表中的点信息拟合绘制轨迹再退出;如果
不是则直接退出。
在本发明的另一个实施例中,参阅图2所示,所述的绘制预测补偿方法
包括:
步骤201,触发鼠标绘制事件。
步骤202,判断鼠标是否处于落压状态,如果是则进行步骤203,如果不
是则进行步骤206。
步骤203,清空预先设置的绘制点表。
在实施例中,所述的绘制点表记录了每个事件点的坐标和获取的时间。
步骤204,将鼠标事件点信息加入到绘制点表中。
步骤205,根据绘制点表中的点信息拟合绘制轨迹,然后返回步骤201。
步骤206,判断鼠标是否处于移动状态,如果是则进行步骤207,如果不
是则执行步骤212。
步骤207,将鼠标事件点信息加入到预先设置的绘制点表中。
步骤208,判断所述绘制点表中的事件点信息是否大于或等于3,如果不
是则返回步骤205,如果是则进行步骤209。
步骤209,提取绘制点表中最后存储的三个事件点信息,获得预测点位
置信息。
较佳地,计算预测点位置信息包括:可以根据先后顺序依次分别获得A1
(最后存入的事件点信息)、A2(倒数第二存入的事件点信息)、A3(倒数第
三存入的事件点信息)的坐标和获取时间,即A1(x1,y1)、A2(x2,y2)、A3(x3,y3)
和T1、T2、T3。然后根据公式V3=(A3-A2)/(T3-T2)获得A2A3段的平均速度
V3,根据公式V2=(A2-A1)/(T2-T1)获得A1A2段的平均速度V2,根据公式
a2=V3-V2获得A2点的瞬时加速度a2。需要说明的是,上面三个公式的计算都
是向量计算,最后得到的数值也是向量数值。
再者,预测点与最后存入的事件点之间的线段的平均速度V4=a2+V3。然
后,求得预测点的位置A4=V4*Ta+A3。其中,所述的Ta是绘制点表中最后存储
的三个事件点的获取时间的平均值,即Ta=(T1+T2+T3)/3。
步骤210,判断是否为第一次预测,如果是则直接进行步骤211;如果不
是则先删除上一次根据预测点绘制的轨迹,然后进行步骤211。
在本发明的另一个实施例中,所述获得的预测点信息可以存储在预先设
置的预测点列表中,该列表包括预测点的坐标。较佳地,在判断是否为第一
次预测时可以通过查看预先设置的预测点列表中是否保存有预测点信息,有
则说明不是第一次预测,否则是第一次预测。
步骤211,根据获得的预测点和绘制点表中所有的信息拟合绘制轨迹,
然后返回步骤201。
步骤212,判断鼠标是否处于抬起状态,如果是则将鼠标事件点信息加
入到绘制点表中,然后根据绘制点表中的点信息拟合绘制轨迹再退出;如果
不是则直接退出。
优选地,上面所述的拟合、绘制曲线采用的都是贝塞尔方法。
作为本发明的另一个实施例,如图3所示,为本发明实施例绘制预测补
偿系统的结构示意图,所述绘制预测补偿系统包括依次连接的事件触发单元
301、落压状态判断单元302、移动状态判断单元303和抬起状态判断单元
304。事件触发单元301触发鼠标绘制事件,然后落压状态判断单元302判断
鼠标是否处于落压状态,如果是则清空预先设置的绘制点表,将鼠标事件点
信息加入到绘制点表中,根据绘制点表中的点信息拟合绘制轨迹。如果不是
则与移动状态判断单元303相连,移动状态判断单元303判断鼠标是否处于
移动状态,如果是则将鼠标事件点信息加入到预先设置的绘制点表中,判断
所述绘制点表中的事件点信息是否大于或等于3,如果不是则根据绘制点表
中的点信息拟合绘制轨迹,如果是则提取绘制点表中最后存储的三个事件点
信息,获得预测点位置信息,然后根据获得的预测点和绘制点表中所有的信
息拟合绘制轨迹。
如果不是则与抬起状态判断单元304相连,抬起状态判断单元304判断
鼠标是否处于抬起状态,如果是则将鼠标事件点信息加入到绘制点表中,然
后根据绘制点表中的点信息拟合绘制轨迹再退出;如果不是则直接退出。
综上所述,本发明提供的绘制预测补偿方法和系统,创造性地提出了通
过绘制轨迹及绘制速度对当前绘制轨迹进行相应的补偿,以减少绘制与刷新
的视觉差异;即本发明能够解决快速绘制时硬件刷新不及时给用户造成的视
觉差异;而且,所述的绘制预测补偿方法和系统针对鼠标不同的落压、移
动、抬起状态情况具体的进行拟合绘制;与此同时,本发明能够为用户提供
更好地笔迹绘制体验,还在进行补偿的过程中判断是否为第一次预测,不是
则还要删除上一次根据预测点绘制的轨迹;最后,整个所述的绘制预测补偿
方法和系统简便、紧凑,易于实现。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例
而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修
改、等同替换、改进等,均应包含在本发明的保护范围之内。