发明内容
有鉴于此,本发明的目的在于提出一种基于触屏的软笔实现方法及装置,在绘制过程中绘制线条能够模仿出软笔(如例如毛笔或者其他一些笔头较为软的笔)的绘制过程,并且绘制的显示过程无延迟。
基于上述目的本发明提供的一种基于触屏的软笔实现方法,包括以下步骤:
在与触屏的接触面上获取数据,数据包括当前点的压力值和当前点的坐标位置,并根据所述压力值绘制圆,第一个点为起始点;
在相邻的两个圆之间绘制公切线,并对两个圆与公切线之间的区域进行填充,形成具有一定粗细的线段;
对所述线段进行关键点算法计算;
判断是否存在关键点,如果存在,以该关键点为基准拟合优化该关键点两边的线段;如果不存在则拟合优化所述已经绘制的线段;
固化所述拟合优化后的线段;
显示所述固化后的线段。
可选的,所述压力值与所述坐标位置都是根据预设间隔值进行取样。
可选的,所述预设间隔值为像素间隔值或时间间隔值。
可选的,所述压力值由触屏直接获取,所述触屏具有压力感知能力;或者所述压力值由硬件装置提供,该装置与所述触屏直接接触。
可选的,所述绘制圆的步骤包括:根据压力值大小按照正比关系确定圆半径并生成圆。
可选的,所述关键点算法计算,包括以下步骤:
选取需要计算关键点的线段;
将所选取线段的两个端点之间连成一条直线;
计算所述线段上的所有的点到所述直线的垂直距离。
可选的,从起始点起第三个点开始执行所述的关键点算法计算步骤。
可选的,所述判断是否存在关键点是对所述垂直距离进行判断,判断阈值为M,所述阈值M>0;
如果所述垂直距离中最大的垂直距离大于等于所述阈值M,则有关键点;所述垂直距离最大的点为关键点;
如果所述垂直距离中最大的垂直距离小于所述阈值M,则没有关键点。
可选的,所述关键点存在时,以关键点为基准分别拟合优化所述关键点两边的线段,关键点固定不动。
可选的,所述关键点两边的线段在拟合优化后,判断所述关键点是否为新出现的关键点:如果是,则选取所述起始点到所述关键点、以及从所述关键点到所述当前点之间的两段线段,分别对所述两段线段进行关键点计算;如果否,则固化拟合优化后的所述关键点到所述起始点之间的线段。
可选的,所述关键点到所述起始点之间的线段完成固化后,所述关键点作为下一个绘制过程的起始点,绘制重新开始。
可选的,所述关键点不存在时,进一步判断所述当前点到起始点是否达到第二阈值N,如果是,则拟合优化所述当前点与所述起始点之间的线段,并固化拟合优化后的线段;如果否,则拟合优化所述当前点与所述起始点之间的线段,然后重新开始获取所述数据。
可选的,所述第二阈值N包括时间阈值TM和/或长度阈值LM。
可选的,所述第二阈值N为时间阈值TM与距离阈值LM,判断从所述当前点到起始点的时间或距离中任意一个是否达到所述时间阈值TM或距离阈值LM,如果达到了任何一个,则判断结果为是;否则,即T<TM且L<LM时,则判断结果为否。
可选的,所述第二阈值N为时间阈值TM,判断从所述当前点到起始点的时间是否达到所述时间阈值TM,如果达到,则判断结果为是;否则,即T<TM时,则判断结果为否。
可选的,所述第二阈值N为距离阈值LM,其特征在于所述第二阈值N为距离阈值LM,判断从所述当前点到起始点的距离是否达到所述距离阈值LM,如果达到,则判断结果为是;否则,即L<LM时,则判断结果为否。
可选的,所述当前点与所述起始点之间的线段完成固化后,所述当前点作为下一个绘制过程的起始点,绘制重新开始。
可选的,所述拟合优化所述线段是基于根据贝塞尔曲线算法优化得出的。
同时,本发明还提出一种基于触屏的软笔实现装置,其特征在于包括:
数据获取模块,用于获取与触屏的接触面上获取数据,数据包括当前点的压力值和当前点的坐标位置,第一个点为起始点;
绘制模块,用于在所述当前点根据压力值绘制圆、在相连圆之间绘制公切线,并对两个圆与公切线之间的区域进行填充,形成具有一定粗细的线段;
计算模块,用于对所述线段进行关键点算法计算;
判断模块,用于判断是否存在关键点,如果存在,以该关键点为基准拟合优化该关键点两边的线段;如果不存在则拟合优化所述已经绘制的线段;
拟合优化模块,用于拟合优化所述线段;
固化模块,用于固化拟合优化后的线段;
显示模块,用于显示所述固化后的线段。
可选的,所述数据获取模块中所获取的压力值与所述坐标位置都是根据预设间隔值进行取样。
可选的,所述数据模块中获取预设间隔值为像素间隔值或时间间隔值
可选的,所述压力值由触屏直接获取,所述触屏具有压力感知能力;或者所述压力值由硬件装置提供,该装置与所述触屏直接接触。
可选的,所述绘制模块绘制的圆半径大小与所述压力值成正比关系。
可选的,所述计算模块在进行所述关键点算法计算时,包括以下计算过程:
选取需要计算关键点的线段;
将所选取线段的两个端点之间连成一条直线;
计算所述线段上的所有的点到所述直线的垂直距离。
可选的,所述计算模块中的计算过程是从起始点的第三个点开始执行所述的关键点算法计算过程。
可选的,所述判断模块判断是否存在关键点是对所述垂直距离进行判断,判断阈值为M,所述阈值M>0;
如果所述垂直距离中最大的垂直距离大于等于所述阈值M,则有关键点;所述垂直距离最大的点为关键点;
如果所述垂直距离中最大的垂直距离小于所述阈值M,则没有关键点。
可选的,当所述判断模块判断出关键点存在时,以关键点为基准用所述拟合优化模块分别拟合优化所述关键点两边的线段,关键点固定不动。
可选的,所述判断模块还包括判断所述关键点是否为新出现的关键点;
如果是则选取所述起始点到所述关键点、以及从所述关键点到所述当前点之间的两段线段,分别用计算模块对所述两端线段进行关键点计算;
如果否则用拟合优化模块拟合所述关键点到所述起点之间的线段之后,用固化模块线段。
可选的,所述固化模块固化所述关键点到所述起点之间的线段后,所述关键点在所述数据获取模块中作为起始点,绘制模块重新开始绘制。
可选的,所述判断模块在判断关键点不存在时,还包括用于进一步判断所述当前点到起始点是否达到第二阈值N;
如果是,则用所述拟合优化模块拟合优化所述当前点与所述起始点之间的线段之后,用固化模块固化所述线段;
如果否,则用所述拟合优化模块拟合优化所述当前点与所述起始点之间的线段之后,用数据获取模块重新开始获取所述数据。
可选的,所述判断模块中判断的第二阈值N包括时间阈值TM和/或长度阈值LM。
可选的,所述第二阈值N为时间阈值TM与距离阈值LM,判断模块将判断从所述当前点到起始点的时间或距离中任意一个是否达到所述时间阈值TM或距离阈值LM,如果达到了任何一个,则判断结果为是;否则,即T<TM且L<LM时,则判断结果为否。
可选的,所述第二阈值N为时间阈值TM,判断模块将判断从所述当前点到起始点的时间是否达到所述时间阈值TM,如果达到,则判断结果为是;否则,即T<TM时,则判断结果为否。
可选的,所述第二阈值N为距离阈值LM,判断模块判断从所述当前点到起始点的距离是否达到所述距离阈值LM,如果达到,则判断结果为是;否则,即L<LM时,则判断结果为否。
可选的,所述固化模块固化所述当前点与所述起始点之间的线段后,绘制模块将当前点作为下一个绘制过程的起始点,绘制重新开始。
可选的,所述拟合优化模块在拟合优化所述线段时,拟合优化方式是基于根据贝塞尔曲线算法优化得出的。
从上面所述可以看出,本发明提供的一种基于触屏的软笔实现方法及装置,实现方式是通过获取的压力值大小调节绘制线段的宽度,通过关键点算法进行计算,以贝塞尔曲线拟合优化线段,并对拟合优化后的线段进行固化并显示固化后的线段。本发明所提供的方法及装置,是模拟软笔进行绘制的,这样的绘制方式使得绘制图像的真实度高,显示实时性强,整个绘制过程非常真实,用户在绘制过程中感觉良好。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
参见图1所示,本发明提供了一种基于触屏的软笔实现方法,具体包括以下步骤:
步骤1,在与触屏的接触面上获取数据,数据包括当前点的压力值和当前点的坐标位置,并根据压力值绘制圆
作为本发明的一个实施例,与触屏所接触的硬件装置是一个电磁笔,电磁笔的笔头装有弹性装置,压力数据被分为512个档位,每个档位都对应的弹性装置的一个弹性度,根据弹性装置的弹性度,获取压力值。可选的,压力数据也可以被分为255个档位,或者1024个档位。作为一个实施例,对于具有压力感知能力的触屏,也可直接由触屏获取所述压力值,无需借助电磁笔,用其他类型的笔或手指也可以实现。
在屏幕上的每个像素点,都对应一个唯一的坐标位置。由于坐标位置是一个动态值,当前的坐标位置的获取,是根据笔尖与触屏所接触的当前点AD所在位置。
作为本发明的一个实施例,为了避免采样点过多影响计算速度,绘制过程中,压力值与坐标位置都是根据预设间隔值进行取样,例如每隔两个像素值获取一次数据,或者每间隔一段时间,例如每40ms获取一次数据。
作为本发明的一个实施例,绘制圆也是一个实时的过程,每当获取到一个点的数据时,就在该点根据压力值在所述坐标位置绘制圆。作为一个实施例,所述绘制是一个虚拟的运算过程,包括步骤2中的绘制公切线和填充过程,步骤5或步骤9或步骤11中的拟合优化过程,都是在绘制过程中虚拟进行的,这些过程并不会被用户看到,而用户最终从显示屏幕上看到的,就是步骤6或步骤10已经完成固化的线段。
起始点为AS为第一个取样点,此时的当前点AD就是起始点AS,即AD=AS,首先获取到AS点的压力值和坐标位置,在AS点根据压力值绘制一个圆。
作为本发明的一个实施例,绘制圆的步骤包括:根据压力值大小按照正比关系确定圆半径并生成圆。圆半径的大小与压力值的每个档位都是一一对应的关系,压力值越大(对于电磁笔则是弹性度越大),圆半径就越大。作为一个实施例,所述绘制的圆为实心圆。
步骤2,在步骤1中得到的相邻的两个圆之间绘制公切线,并对两个圆与公切线之间的区域进行填充,形成具有一定粗细的线段。
作为本发明的一个实施例,步骤2的绘制过程是一个实时过程。即每获得到一个点的数据,就在这个点根据压力值绘制圆。并在这个点与前一个点之间的圆上绘制公切线。当前点为AD,在AD点根据压力值绘制圆,在当前点AD与当前点的前一个点AD-1的对应的两个圆之间绘制公切线。
该绘制过程从起始点AS开始之后的第二个点AS2开始进行。假设当前点AD是起始位置开始的第二个点AS2即AD=AS2,首先在AS2点绘制圆,然后在AS点和AS2两个点所对应两个圆之间绘制公切线。
公切线绘制完成后,对公切线与相邻的两个圆之间形成空白区域进行填充。作为一个实施例,对空白区域填充的颜色与绘制所使用的颜色是相同颜色。
步骤3,对已经绘制的线段进行关键点算法计算。关键点算法包括以下步骤:
步骤31,选取需要计算关键点的线段(该线段并非一定是直线,也可能是曲线、折线等)。作为本发明的一个实施例,关键点算法计算至少应该包括三个点。
步骤32,将所选取线段的两个端点(起始点和终点)之间连成一条直线。
步骤33,计算该线段上的所有的点到所述直线的垂直距离。
作为本发明的一个实施例,所述选取需要计算关键点的线段是当前点与所述起始点之间的线段。所述该线段上的所有的点一般为步骤1中的数据获取点,若该点在步骤5或步骤11中做过拟合优化处理,则为步骤5或步骤11中拟合优化的线段上的点。
作为本发明的一个实施例,所述垂直距离计算,不包括线段的两个端点到所述直线的垂直距离。因为线段的两个端点与直线的两个端点是重合的,距离为0。
假设选取线段ADAS进行计算,起始点AS、当前点AD,AS和AD两个点为线段的两个端点,将AS到AD连成一条直线,计算直线上所有的点到该直线间的垂直距离,不包括AS和AD两个点的。
步骤4,对步骤33中所述所有垂直距离计算结果进行判断,判断阈值为M,所述阈值M>0。若其中最大的垂直距离L⊥大于等于预设的阈值M时,即L⊥≥M时则判断有关键点,该垂直距离最大的点即为关键点AK,触发步骤5。若该最大的垂直距离L⊥小于阈值M时,即L⊥<M则判断该线段上没有关键点,触发步骤8。
步骤5,当步骤4的判断结果为有关键点时,拟合优化所述关键点两边的线段。具体的是指,关键点固定不动,以关键点所在位置为界,将所述线段分为两段,即起始点到关键点之间的线段,以及关键点到当前点之间的线段,分别对这两部分线段进行拟合优化。假设当前点AD与起始点AS之间的线段是ASAD,AK为该线段上的关键点,从关键点AK将线段分为两段,即线段ASAK和线段AKAD,固化关键点AK,拟合优化线段ASAK和线段AKAD。
步骤6,固化关键点与起始点之间的线段。对这部分线段不再进行绘制和计算,所述关键点作为下一个绘制过程的起始点,触发步骤1,绘制过程重新开始。
步骤7,显示固优化后的线段。
步骤51,作为本发明的一个实施例,可以在步骤5之后增加一个步骤51,判断步骤4得到的关键点是否为新出现的关键点,如果否,则进入步骤6;如果是,则选取起始点到所述关键点、以及从所述关键点到当前点之间的两段线段,然后触发步骤32分别对上述两段线段进行关键点计算。这种将线段分段再计算的方式会能够保证计算出所绘制线段上的所有关键点都被找出没有遗漏。
步骤8,当步骤4中判断结果为没有关键点时,进一步判断当前点到起始点是否达到第二阈值N。若判断结果为是,则触发步骤9;若判断结果为否则触发步骤11。
作为本发明的一个实施例,第二阈值N可以包括时间阈值TM和/或距离阈值LM。
如果第二阈值N为时间阈值TM与距离阈值LM,则步骤8为进一步判断从当前点到起始点的时间或距离中的任意一个是否达到所述时间阈值TM或距离阈值LM,如果达到了任何一个,则判断结果为是;否则,即T<TM且L<LM时,则判断结果为否。在实际绘制过程中,用户会有各种各样不同的绘制方式,对时间阈值TM和长度阈值LM这两个条件,在每一次判断计算结果没有关键点之后,都会对时间阈值TM和长度阈值LM分别进行判断,以先达到判断条件的阈值为触发条件。在实际教学演示过程中,有时候为了能够演示详细的过程,会放慢绘制速度,绘制时间就会增加,这时绘制时间T就会首先达到时间阈值TM,这时就根据TM进行判断;或者有些学生在绘制过程中,绘制速度会比较快,在同样的绘制时间里,绘制的长度就会增加,当距离L达到距离阈值LM时,这时就根据LM进行判断。
如果第二阈值N为时间阈值TM,则步骤8为进一步判断当前点到起始点的时间是否达到所述时间阈值TM,如果达到,则判断结果为是;否则T<TM时,则判断结果为否。
如果第二阈值N为距离阈值LM,则步骤8为进一步判断当前点到起始点的距离是否达到所述距离阈值LM,如果达到,则判断结果为是;否则L<LM时,则判断结果为否。
步骤9,作为本发明的一个实施例,当步骤8的判断结果为是的时候,即达到第二阈值N时,则触发步骤9,拟合优化当前点与起始点之间的线段。
步骤10,固化当前点到起始点之间的线段。对这部分线段不再进行绘制、计算、拟合优化,所述当前点作为下一个绘制过程的起始点,触发步骤1,绘制、计算、拟合优化重新开始。然后将已经固化的线段显示,即触发步骤7。
步骤11,作为本发明的一个实施例,当步骤8的判断结果为否的时候,即没有达到第二阈值N时,则触发步骤11,拟合优化当前点与起始点之间的线段,然后触发步骤1。
作为本发明的一个实施例,所述步骤9到步骤11的目的是当起始点到当前点之间在没有出现关键点时候,当线段(的长度或者时间等)达到一定的阈值,起始点到当前点的线段可以再进行第二次拟合优化,使绘制出的线段更加光滑优美。
作为本发明的一个实施例,所述步骤5、步骤9、步骤11中线段的拟合优化方式是根据贝塞尔曲线算法拟合优化得出的。贝塞尔曲线的优点是其仿真程度更非常高,并且可以有效的去除绘制过程中由于抖动产生的毛刺和失真度非常大的尖锐拐点。
作为本发明的一个实施例,在步骤31中所述线段为经过拟合优化后的线段。在实际绘制过程中,实际的采样点可能是毛刺或尖锐的拐点,线段在进行优化后,实际线段会被优化线段所覆盖,覆盖后该点消失。在对所述优化线段进行关键点计算时,将在优化的线段上获取需要计算的点。
对拟合优化后的线段进行固化,能够缩短庞杂的计算过程所带来的由于运算时间过长导致的运算速度过慢。这种对线段进行分段式的绘制、计算、拟合优化、固化方式是一种增量式存储方式,这种存储方式使得运算速度大大提升。
本发明的方法可应用在所有触屏设备上,如手机、平板电脑、电子白板等,特别是在大型的电子白板触屏应用上。大型电子白板的应用常见于教学演示、教学互动、会议、展览展示等。可以应用于包括:电阻式、电容式、压电式、红外线、表面声波等各种类型的触屏。
参见图2,本发明还提供了一种基于触屏的软笔实现装置,包括以下模块:
数据获取模块901,用于获取与触屏的接触面上获取数据,数据包括当前点的压力值和当前点的坐标位置,第一个点为起始点;
绘制模块902,用于在所述当前点根据压力值绘制圆、在相连圆之间绘制公切线,并对两个圆与公切线之间的区域进行填充,形成具有一定粗细的线段;
计算模块903,用于对所述线段进行关键点算法计算;
判断模块904,用于判断是否存在关键点,如果存在,以该关键点为基准拟合优化该关键点两边的线段;如果不存在则拟合优化所述已经绘制的线段;
拟合优化模块905,用于拟合优化所述线段;
固化模块906,用于固化拟合优化后的线段;
显示模块907,用于显示所述固化后的线段。
作为本发明的一个实施例,与触屏所接触的硬件装置是一个电磁笔,电磁笔的笔头装有弹性装置,压力数据被分为512个档位,每个档位都对应的弹性装置的一个弹性度,根据弹性装置的弹性度,获取压力值。可选的,压力数据也可以被分为255个档位,或者1024个档位。作为一个实施例,对于具有压力感知能力的触屏,也可直接由触屏获取所述压力值,无需借助电磁笔,用其他类型的笔或手指也可以实现。
在屏幕上的每个像素点,都对应一个唯一的坐标位置。由于坐标位置是一个动态值,数据获取模块901获取到的当前的坐标位置,是根据笔尖与触屏所接触的当前点AD所在位置。
作为本发明的一个实施例,为了避免采样点过多影响计算速度,绘制过程中,数据获取模块901获取到的压力值与坐标位置都是根据预设间隔值进行取样,例如每隔两个像素值获取一次数据,或者每间隔一段时间,例如每40ms获取一次数据。
作为本发明的一个实施例,绘制模块902在绘制圆是一个实时的过程,每当数据获取模块901获取到一个点的数据时,绘制模块902就在该点根据压力值在所述坐标位置绘制圆。作为一个实施例,所述绘制是一个虚拟的运算过程,还包括绘制模块902在绘制公切线和填充时,以及拟合优化模块905拟合优化过程,都是在绘制过程中虚拟进行的,这些过程并不会被用户看到,而用户最终从显示屏幕上看到的,是固化模块906完成固化后的线段。
作为本发明的一个实施例,绘制模块902所绘制圆的半径与数据获取模块901获取的压力值大小按照正比关系。圆半径的大小与压力值的每个档位都是一一对应的关系,压力值越大(对于电磁笔则是弹性度越大),圆半径就越大。作为一个实施例,所述绘制圆为实心圆。
作为本发明的一个实施例,绘制模块902的绘制过程是一个实时的过程。即数据获取模块901每获得到一个点的数据,绘制模块902就在这个点根据压力值绘制圆。并在这个点与前一个点之间的圆上绘制公切线。
绘制模块902对于公切线的绘制是从起始点开始之后的第二个点开始进行。
公切线绘制完成后,绘制模块902对公切线与相邻的两个圆之间形成空白区域进行填充。作为本发明的一个实施例,对空白区域填充的颜色与绘制所使用的颜色是相同颜色。
计算模块903对已经绘制的线段进行关键点算法计算。关键点算法包括以下过程:
首先,计算模块903选取需要计算关键点的线段(该线段并非一定是直线,也可能是曲线、折线等)。作为本发明的一个实施例,关键点算法计算至少应该包括三个点;
其次,计算模块903将所选取线段的两个端点(起始点和终点)之间连成一条直线;
再次,计算模块903计算该线段上的所有的点到所述直线的垂直距离。
作为本发明的一个实施例,计算模块903所选取的需要计算关键点的线段,是指当前点与所述起始点之间的线段。所述该线段上的所有的点一般为数据获取模块901数据的获取点,若该点经过拟合优化模块905做过拟合优化处理,则为拟合优化后的线段上的点。
作为本发明的一个实施例,计算模块903在计算所述垂直距离时,不包括线段的两个端点到所述直线的垂直距离。因为线段的两个端点与直线的两个端点是重合的,距离为0。
判断模块904对计算模块903中所述所有垂直距离计算结果进行判断,判断阈值为M,所述阈值M>0。若其中最大的垂直距离L⊥大于等于预设的阈值M时,即L⊥≥M时则判断有关键点,垂直距离最大的点即为关键点AK。若该最大的垂直距离L⊥小于阈值M时,即L⊥<M则判断该线段上没有关键点。
若判断模块904判断出有关键点,则用拟合优化模块905拟合优化所述线段,若判断为没有关键点,则判断模块904将对当前点与起始点之间的线段进行进一步判断。
当判断模块904判断结果为有关键点时,拟合优化模块905将拟合优化所述关键点两边的线段。具体的是指,关键点固定不动,以关键点所在位置为界,将所述线段分为两段,即起始点到关键点之间的线段,以及关键点到当前点之间的线段,分别对这两部分线段进行拟合优化。
然后固化模块906将固化关键点与起始点之间的线段。对这部分线段不再进行绘制和计算,所述关键点作为数据获取模块901中的起始点,绘制过程重新开始。
显示模块907,显示固化后的线段。
作为本发明的一个实施例,判断模块904还包括判断关键点是否为新出现的关键点,如果否,则用固化模块906固化关键点与起始点之间的线段;如果是则计算模块903将选取起始点到所述关键点、以及从所述关键点到当前点之间的两段线段,然后分别对上述两段线段进行关键点计算。这种将线段分段再计算的方式会能够保证计算出所绘制线段上的所有关键点都被找出没有遗漏。
作为本发明的一个实施例,当判断模块904判断出没有关键点时,判断模块904还将进一步判断当前点到起始点是否达到第二阈值N。若判断结果为是,则用拟合优化模块905拟合优化当前点与起点之间的线段,然后用固化模块906固化当前点与起点之间的线段。当这部分线段完成固化后,对这部分线段不再进行拟合优化和计算,所述当前点作为下一个绘制过程数据获取模块901的起始点,绘制过程重新开始。
若判断结果为否,则用拟合优化模块905拟合优化当前点与起点之间的线段,然后用数据获取模块901继续获取数据。
作为本发明的一个实施例,第二阈值N可以包括时间阈值TM和/或距离阈值LM。
如果第二阈值N为时间阈值TM与距离阈值LM,则判断模块904将进一步判断从当前点到起始点的时间或距离中的任意一个是否达到所述时间阈值TM或距离阈值LM,如果达到了任何一个,则判断结果为是;否则,即T<TM且L<LM时,则判断结果为否。在实际绘制过程中,用户会有各种各样不同的绘制方式,对时间阈值TM和长度阈值LM这两个条件,在每一次判断计算结果没有关键点之后,都会对时间阈值TM和长度阈值LM分别进行判断,以先达到判断条件的阈值为触发条件。在实际教学演示过程中,有时候为了能够演示详细的过程,会放慢绘制速度,绘制时间就会增加,这时绘制时间T就会首先达到时间阈值TM,这时就根据TM进行判断;或者有些学生在绘制过程中,绘制速度会比较快,在同样的绘制时间里,绘制的长度就会增加,当距离L达到距离阈值LM时,这时就根据LM进行判断。
如果第二阈值N为时间阈值TM,则判断模块904将进一步判断当前点到起始点的时间是否达到所述时间阈值TM,如果达到,则判断结果为是;否则T<TM时,则判断结果为否。
如果第二阈值N为距离阈值LM,则判断模块904将进一步判断当前点到起始点的距离是否达到所述距离阈值LM,如果达到,则判断结果为是;否则L<LM时,则判断结果为否。
作为本发明的一个实施例,从上述内容可以看出,拟合优化模块905可以用于拟合关键点与起始点之间的线段,而当起始点到当前点之间在没有出现关键点时候,拟合优化模块905还可以用于对起始点到当前点的线段再进行第二次拟合优化,使线段更加光滑优美。
作为本发明的一个实施例,所述拟合优化模块905中拟合优化线段方式是根据贝塞尔曲线算法拟合优化得出的。贝塞尔曲线的优点是其仿真程度更非常高,并且可以有效的去除绘制过程中由于抖动产生的毛刺和失真度非常大的尖锐拐点。
作为本发明的一个实施例,计算模块903中选取的线段为经过拟合优化后的线段。在实际绘制过程中,实际的采样点可能是毛刺或尖锐的拐点,线段在进行优化后,实际线段会被优化线段所覆盖,覆盖后该点消失。在对所述优化线段进行关键点计算时,将在优化的线段上获取需要计算的点。
固化模块906对拟合优化后的线段进行固化,能够缩短庞杂的计算过程所带来的由于运算时间过长导致的运算速度过慢。这种对线段进行分段式的绘制、计算、拟合优化、固化方式是一种增量式存储方式,这种存储方式使得运算速度大大提升。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。