CN104714743B - 一种基于触屏的软笔实现方法及装置 - Google Patents

一种基于触屏的软笔实现方法及装置 Download PDF

Info

Publication number
CN104714743B
CN104714743B CN201310681518.1A CN201310681518A CN104714743B CN 104714743 B CN104714743 B CN 104714743B CN 201310681518 A CN201310681518 A CN 201310681518A CN 104714743 B CN104714743 B CN 104714743B
Authority
CN
China
Prior art keywords
point
line segment
key point
touch screen
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310681518.1A
Other languages
English (en)
Other versions
CN104714743A (zh
Inventor
李俊峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Hongcheng Opto Electronics Co Ltd
Original Assignee
Hitevision Polytron Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitevision Polytron Technologies Inc filed Critical Hitevision Polytron Technologies Inc
Priority to CN201310681518.1A priority Critical patent/CN104714743B/zh
Publication of CN104714743A publication Critical patent/CN104714743A/zh
Application granted granted Critical
Publication of CN104714743B publication Critical patent/CN104714743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了本发明公开了一种基于触屏的软笔绘制方法及装置,通过获取的压力值大小调节绘制线条的宽度。通过关键点算法,以贝塞尔曲线优化路径,并在拟合优化的路径上通过增量式方式固化绘制线段。本发明所提供的方法及装置,是模拟软笔进行绘制的,这样的绘制方式使得绘制图像的真实度高,显示实时性强,整个绘制过程非常真实,用户在绘制过程中感觉良好。

Description

一种基于触屏的软笔实现方法及装置
技术领域
本发明涉及的软笔实现领域,特别是指一种基于触屏的软笔实现方法及装置。
背景技术
目前,使用触屏绘制是一种非常普遍的绘制方式。现有技术一般是通过对输入的数据进行坐标位置采样,然后对采样数据进行曲线优化从而使采样线光滑平整。现有技术中,绘制线段的宽度一般是固定的,绘制线条的粗细只能通过预设好的值进行选择,而不能与绘制过程同步进行。在实际生活中,当人们使用软笔(例如毛笔或者其他一些笔头较为软的笔)进行绘制或书写时,笔端的粗细在绘制过程中,并不是一个固定的宽度。
另外,当采样数据过多,并又想保持绘制线条不失真时,运算时间也会随之增加。在绘制过程中,随着新的数据不断获取,绘制的线段会不断更新,现有技术对线段进行曲线优化计算一般是从绘制起始点就开始进行计算,每次计算过程都会重新计算当起始点到当前点之间的线段,并对其进行优化,当数据量过于庞大时,系统的运行速度降低,延迟时间增加,用户的使用感受会受到影响。
发明内容
有鉴于此,本发明的目的在于提出一种基于触屏的软笔实现方法及装置,在绘制过程中绘制线条能够模仿出软笔(如例如毛笔或者其他一些笔头较为软的笔)的绘制过程,并且绘制的显示过程无延迟。
基于上述目的本发明提供的一种基于触屏的软笔实现方法,包括以下步骤:
在与触屏的接触面上获取数据,数据包括当前点的压力值和当前点的坐标位置,并根据所述压力值绘制圆,第一个点为起始点;
在相邻的两个圆之间绘制公切线,并对两个圆与公切线之间的区域进行填充,形成具有一定粗细的线段;
对所述线段进行关键点算法计算;
判断是否存在关键点,如果存在,以该关键点为基准拟合优化该关键点两边的线段;如果不存在则拟合优化所述已经绘制的线段;
固化所述拟合优化后的线段;
显示所述固化后的线段。
可选的,所述压力值与所述坐标位置都是根据预设间隔值进行取样。
可选的,所述预设间隔值为像素间隔值或时间间隔值。
可选的,所述压力值由触屏直接获取,所述触屏具有压力感知能力;或者所述压力值由硬件装置提供,该装置与所述触屏直接接触。
可选的,所述绘制圆的步骤包括:根据压力值大小按照正比关系确定圆半径并生成圆。
可选的,所述关键点算法计算,包括以下步骤:
选取需要计算关键点的线段;
将所选取线段的两个端点之间连成一条直线;
计算所述线段上的所有的点到所述直线的垂直距离。
可选的,从起始点起第三个点开始执行所述的关键点算法计算步骤。
可选的,所述判断是否存在关键点是对所述垂直距离进行判断,判断阈值为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为本发明实施例基于触屏的软笔实现方法流程图;
图2为本发明实施例基于触屏的软笔实现装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
参见图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对拟合优化后的线段进行固化,能够缩短庞杂的计算过程所带来的由于运算时间过长导致的运算速度过慢。这种对线段进行分段式的绘制、计算、拟合优化、固化方式是一种增量式存储方式,这种存储方式使得运算速度大大提升。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种基于触屏的软笔实现方法,其特征在于包括以下步骤:
在与触屏的接触面上获取数据,数据包括当前点的压力值和当前点的坐标位置,并根据所述压力值绘制圆,第一个点为起始点;
在相邻的两个圆之间绘制公切线,并对两个圆与公切线之间的区域进行填充,形成具有一定粗细的线段;
对所述线段进行关键点算法计算;
判断是否存在关键点,如果存在,以该关键点为基准拟合优化该关键点两边的线段;如果不存在则拟合优化已经绘制的线段;
固化所述拟合优化后的线段;
显示所述固化后的线段;
其中,所述关键点存在时,以关键点为基准分别拟合优化所述关键点两边的线段,关键点固定不动;
所述关键点两边的线段在拟合优化后,判断所述关键点是否为新出现的关键点:如果是,则选取所述起始点到所述关键点、以及从所述关键点到所述当前点之间的两段线段,分别对所述两段线段进行关键点计算;如果否,则固化拟合优化后的所述关键点到所述起始点之间的线段;
所述关键点到所述起始点之间的线段完成固化后,所述关键点作为下一个绘制过程的起始点,绘制重新开始;
所述关键点不存在时,进一步判断所述当前点到起始点是否达到第二阈值N,如果是,则拟合优化所述当前点与所述起始点之间的线段,并固化拟合优化后的线段;如果否,则拟合优化所述当前点与所述起始点之间的线段,然后重新开始获取所述数据;
所述第二阈值N为时间阈值TM与距离阈值LM,判断从所述当前点到起始点的时间或距离中任意一个是否达到所述时间阈值TM或距离阈值LM,如果达到了任何一个,则判断结果为是;否则,即时间T<TM且距离L<LM时,则判断结果为否。
2.根据权利要求1所述的基于触屏的软笔实现方法,其特征在于所述压力值与所述坐标位置都是根据预设间隔值进行取样。
3.根据权利要求2所述的基于触屏的软笔实现方法,其特征在于所述预设间隔值为像素间隔值或时间间隔值。
4.根据权利要求1所述的基于触屏的软笔实现方法,其特征在于所述压力值由触屏直接获取,所述触屏具有压力感知能力;或者所述压力值由硬件装置提供,该装置与所述触屏直接接触。
5.根据权利要求1所述的基于触屏的软笔实现方法,其特征在于所述绘制圆的步骤包括:根据压力值大小按照正比关系确定圆半径并生成圆。
6.根据权利要求1所述的基于触屏的软笔实现方法,其特征在于所述关键点算法计算,包括以下步骤:
选取需要计算关键点的线段;
将所选取线段的两个端点之间连成一条直线;
计算所选取线段上的所有的点到所述直线的垂直距离。
7.根据权利要求6所述的基于触屏的软笔实现方法,其特征在于从起始点起第三个点开始执行所述的关键点算法计算步骤。
8.根据权利要求6所述的基于触屏的软笔实现方法,其特征在于所述判断是否存在关键点是对所述垂直距离进行判断,判断阈值为M,所述阈值M>0;
如果所述垂直距离中最大的垂直距离大于等于所述阈值M,则有关键点;所述垂直距离最大的点为关键点;
如果所述垂直距离中最大的垂直距离小于所述阈值M,则没有关键点。
9.根据权利要求1所述的基于触屏的软笔实现方法,其特征在于所述当前点与所述起始点之间的线段完成固化后,所述当前点作为下一个绘制过程的起始点,绘制重新开始。
10.根据权利要求1所述的基于触屏的软笔实现方法,其特征在于所述拟合优化所述线段是基于根据贝塞尔曲线算法优化得出的。
11.一种基于触屏的软笔实现装置,其特征在于包括:
数据获取模块,用于获取与触屏的接触面上获取数据,数据包括当前点的压力值和当前点的坐标位置,第一个点为起始点;
绘制模块,用于在所述当前点根据压力值绘制圆、在相连圆之间绘制公切线,并对两个圆与公切线之间的区域进行填充,形成具有一定粗细的线段;
计算模块,用于对所述线段进行关键点算法计算;
判断模块,用于判断是否存在关键点,如果存在,以该关键点为基准拟合优化该关键点两边的线段;如果不存在则拟合优化已经绘制的线段;
拟合优化模块,用于拟合优化所述线段;
固化模块,用于固化拟合优化后的线段;
显示模块,用于显示所述固化后的线段;
当所述判断模块判断出关键点存在时,以关键点为基准用所述拟合优化模块分别拟合优化所述关键点两边的线段,关键点固定不动;
所述判断模块还包括判断所述关键点是否为新出现的关键点;
如果是则选取所述起始点到所述关键点、以及从所述关键点到所述当前点之间的两段线段,分别用计算模块对所述两段线段进行关键点计算;
如果否则用拟合优化模块拟合所述关键点到所述起始点之间的线段之后,用固化模块固化拟合优化后的所述关键点到所述起始点之间的线段;
所述固化模块固化所述关键点到所述起始点之间的线段后,所述关键点在所述数据获取模块中作为起始点,绘制模块重新开始绘制;
所述判断模块在判断关键点不存在时,还包括用于进一步判断所述当前点到起始点是否达到第二阈值N;
如果是,则用所述拟合优化模块拟合优化所述当前点与所述起始点之间的线段之后,用固化模块固化所述线段;
如果否,则用所述拟合优化模块拟合优化所述当前点与所述起始点之间的线段之后,用数据获取模块重新开始获取所述数据;
所述第二阈值N为时间阈值TM与距离阈值LM,判断模块将判断从所述当前点到起始点的时间或距离中任意一个是否达到所述时间阈值TM或距离阈值LM,如果达到了任何一个,则判断结果为是;否则,即时间T<TM且距离L<LM时,则判断结果为否。
12.根据权利要求11所述的基于触屏的软笔实现装置,其特征在于所述数据获取模块中所获取的压力值与所述坐标位置都是根据预设间隔值进行取样。
13.根据权利要求12所述的基于触屏的软笔实现装置,其特征在于所述数据模块中获取预设间隔值为像素间隔值或时间间隔值。
14.根据权利要求11所述的基于触屏的软笔实现装置,其特征在于所述压力值由触屏直接获取,所述触屏具有压力感知能力;或者所述压力值由硬件装置提供,该装置与所述触屏直接接触。
15.根据权利要求11所述的基于触屏的软笔实现装置,其特征在于所述绘制模块绘制的圆半径大小与所述压力值成正比关系。
16.根据权利要求11所述的基于触屏的软笔实现装置,其特征在于所述计算模块在进行所述关键点算法计算时,包括以下计算过程:
选取需要计算关键点的线段;
将所选取线段的两个端点之间连成一条直线;
计算所选取线段上的所有的点到所述直线的垂直距离。
17.根据权利要求16所述的基于触屏的软笔实现装置,其特征在于所述计算模块中的计算过程是从起始点的第三个点开始执行所述的关键点算法计算过程。
18.根据权利要求16所述的基于触屏的软笔实现装置,其特征在于所述判断模块判断是否存在关键点是对所述垂直距离进行判断,判断阈值为M,所述阈值M>0;
如果所述垂直距离中最大的垂直距离大于等于所述阈值M,则有关键点;所述垂直距离最大的点为关键点;
如果所述垂直距离中最大的垂直距离小于所述阈值M,则没有关键点。
19.根据权利要求11所述的基于触屏的软笔实现装置,其特征在于所述固化模块固化所述当前点与所述起始点之间的线段后,绘制模块将当前点作为下一个绘制过程的起始点,绘制重新开始。
20.根据权利要求11所述的基于触屏的软笔实现装置,其特征在于所述拟合优化模块在拟合优化所述线段时,拟合优化方式是基于根据贝塞尔曲线算法优化得出的。
CN201310681518.1A 2013-12-12 2013-12-12 一种基于触屏的软笔实现方法及装置 Active CN104714743B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310681518.1A CN104714743B (zh) 2013-12-12 2013-12-12 一种基于触屏的软笔实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310681518.1A CN104714743B (zh) 2013-12-12 2013-12-12 一种基于触屏的软笔实现方法及装置

Publications (2)

Publication Number Publication Date
CN104714743A CN104714743A (zh) 2015-06-17
CN104714743B true CN104714743B (zh) 2018-08-03

Family

ID=53414133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310681518.1A Active CN104714743B (zh) 2013-12-12 2013-12-12 一种基于触屏的软笔实现方法及装置

Country Status (1)

Country Link
CN (1) CN104714743B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045502A (zh) * 2015-06-29 2015-11-11 努比亚技术有限公司 一种图像处理方法及装置
CN105225260B (zh) * 2015-09-25 2019-01-08 中国电子科技集团公司第三十二研究所 一种手写原笔迹实现方法
CN108154546A (zh) * 2017-12-14 2018-06-12 北京酷我科技有限公司 一种移动设备上快速签名的方法
CN112215272A (zh) * 2020-09-29 2021-01-12 重庆大学 一种基于贝塞尔曲线的图像分类神经网络攻击方法
CN112929582A (zh) * 2021-02-04 2021-06-08 北京字跳网络技术有限公司 一种特效展示方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1811678A (zh) * 2005-01-24 2006-08-02 乐金电子(惠州)有限公司 内置有触摸屏的终端机的画线方法
CN101226441A (zh) * 2007-01-17 2008-07-23 北京书生国际信息技术有限公司 一种实现笔锋效果的手写输入方法
CN103324422A (zh) * 2012-03-21 2013-09-25 宇龙计算机通信科技(深圳)有限公司 终端和轨迹修正方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847051B (zh) * 2010-05-21 2012-05-30 鸿富锦精密工业(深圳)有限公司 手写笔

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1811678A (zh) * 2005-01-24 2006-08-02 乐金电子(惠州)有限公司 内置有触摸屏的终端机的画线方法
CN101226441A (zh) * 2007-01-17 2008-07-23 北京书生国际信息技术有限公司 一种实现笔锋效果的手写输入方法
CN103324422A (zh) * 2012-03-21 2013-09-25 宇龙计算机通信科技(深圳)有限公司 终端和轨迹修正方法

Also Published As

Publication number Publication date
CN104714743A (zh) 2015-06-17

Similar Documents

Publication Publication Date Title
CN104714742B (zh) 一种基于触屏的软笔实现方法及装置
CN104714743B (zh) 一种基于触屏的软笔实现方法及装置
CN111381754B (zh) 笔迹处理方法、设备及介质
KR101825154B1 (ko) 중첩 쓰기 핸드라이팅 입력방법
CN102939575B (zh) 墨水呈现
US9020266B2 (en) Methods and devices for processing handwriting input
US9134821B2 (en) Method and device for implemeting original calligraphy of handwriting
CN101807114B (zh) 一种基于三维手势的自然交互方法
CN112905102B (zh) 书写笔锋的实现方法、装置、电子设备及可读存储介质
CN101226441A (zh) 一种实现笔锋效果的手写输入方法
KR20130060145A (ko) 수기 입력의 처리 방법 및 장치
WO2014176370A3 (en) Method for user input from alternative touchpads of a computerized system
CN107798717A (zh) 电子毛笔书写方法、装置、计算机设备和存储介质
JP2014505306A (ja) 手書き原筆跡の実現方法、実現装置及び電子装置
CN111142770A (zh) 一种生成笔锋的方法及处理装置
CN106155540B (zh) 电子毛笔笔形处理方法和装置
EP3015970A1 (en) Method for simulating digital watercolor image and electronic device using the same
CN101281442A (zh) 一种触摸介质的笔迹显示方法、系统及移动终端
CN104461315A (zh) 一种实现笔锋效果的手写输入方法
US20170131801A1 (en) Method for displaying handwriting in a pdf file
US11380028B2 (en) Electronic drawing with handwriting recognition
CN106201314A (zh) 一种在触控屏上实现手写输入的显示方法及显示装置
CN104679411A (zh) 一种基于手势交互的沙画系统
CN106708406B (zh) 毛笔笔迹美化方法和装置
WO2021218448A1 (zh) 笔迹形成方法、笔迹形成装置及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: C1104 room 100085 Beijing city Haidian District Third Street No. 9 C

Applicant after: Hitevision Polytron Technologies Inc

Address before: C1104 room 100085 Beijing city Haidian District Third Street No. 9 C

Applicant before: HONGHE TECHNOLOGY CO., LTD.

CB02 Change of applicant information
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201223

Address after: 233000, No. 1268, Yannan Road, Bengbu City, Anhui Province (Building B, hi tech intelligent terminal Industrial Park)

Patentee after: Anhui Hongcheng photoelectric Co.,Ltd.

Address before: 100085 room c1104, block C, No.9, Shangdi 3rd Street, Haidian District, Beijing

Patentee before: HITEVISION Co.,Ltd.

TR01 Transfer of patent right