电子毛笔书写笔迹生成方法技术

技术编号:7506843 阅读:363 留言:0更新日期:2012-07-11 06:03
本发明专利技术公开了一种电子毛笔书写笔迹生成方法,涉及计算机图形处理技术领域,该方法包括以下步骤:S1:根据触摸设备传递的触摸轨迹上触摸点坐标计算相邻两触摸点的距离;S2:若所述距离小于预定阈值,则按所述预定阈值为间距获取触摸点;若所述距离大于所述预定阈值,则在相邻两个触摸点之间插入插值点;S3:根据所述触摸轨迹上的点绘制预先设置的笔形以生成笔迹。本发明专利技术使得手写输入的毛笔笔迹平滑、连续。

【技术实现步骤摘要】

本专利技术涉及计算机图形处理
,特别涉及一种。
技术介绍
中国毛笔书法是一门古老而深邃的艺术,是中华民族艺术宝库中一颗璀灿夺目的明珠,它伴随着中华文明的发展而发展。在计算机高速发展的今天,人们希望能使书法与时俱进,与现代科技相融合,如何在计算机上逼真的模拟出毛笔的书写效果是很多专家学者研究的方向。在众多的相关研究工作中,模拟毛笔书写笔迹主要的方法是采用硬件来获取输入数据,通过软件算法来对这些数据进行修正处理,以实现毛笔书写的效果,达到模拟真实毛笔动作的目的,如采用光导纤维来模拟倒立的毛笔笔头,通过在毛笔上添加传感器来捕捉捕获位置、压力等数据,并将这些数据转换成毛笔的各个参数,然后通过一系列的软件修正算法,来修正笔迹形状,模拟笔迹的书写效果。这些实现方法中,需要专用于毛笔笔迹的书写的硬件设备,设备成本高,同时,运笔过程中的“提按使转”无法得以体现,毛笔书写运行过程中若没有提按的参与,书法线条将是直来直去,僵硬呆板,线条质量就很差,甚至达不到书法艺术最起码的要求。现有技术中,运笔的轨迹是通过触摸笔在设备屏幕上划过而留下的轨迹,当触摸笔在设备屏幕上移动时,设备会以触摸事件的方式通知相应的处理软件当前触摸笔的位置、压力、时间、倾斜率等信息,由于设备的CPU处理能力和事件通知的机制,导致设备通知触摸事件的间隔并不均衡,当触摸笔的运行速度很慢时,触摸事件会很频繁,这样会导致笔迹在同一个区域重叠绘制,浪费CPU资源,而且,由于用户书写过程有抖动,如果每个像素的移动都进行绘制,则形成的笔迹有很多褶皱,不平滑;而当触摸笔运动很快时,触摸事件则会很少,这样会导致笔迹不连续。
技术实现思路
(一 )要解决的技术问题本专利技术要解决的技术问题是如何使手写输入的毛笔笔迹平滑、连续、无褶皱,且不浪费CPU资源。( 二 )技术方案为解决上述技术问题,本专利技术提供了一种,包括以下步骤Sl 根据触摸设备传递的触摸轨迹上触摸点坐标计算相邻两触摸点的距离;S2 若所述距离小于预定阈值,则按所述预定阈值为间距获取触摸点;若所述距离大于所述预定阈值,则在相邻两个触摸点之间插入插值点;S3 根据所述触摸轨迹上的点绘制预先设置的笔形以生成笔迹。其中,所述步骤S2中插入插值点的过程如下S211 计算所述触摸轨迹上的所有触摸点间的直线轨迹;S212 根据以下公式计算插值点Γ π . dis tan ce ,insertLouni =-xnumber_per snapewidth— —其中,insertCount为两点间插值点个数,distance为沿直线轨迹方向上距离已 插值部分最近的一个触摸点到其前一点的距离,“肚}!为已插值部分绘制的最后一个笔形 的宽度,number_per_shape为每个笔形需要绘制的点的个数;S213 判断insertCount是否小于1,若小于1,则增加已插值的直线的长度,跳转 到步骤S212,否则执行步骤S214 ;S214 lì^M-MìèM^MìèP^: stepLength = distance/insertCount ;S215 按所述步长在所述直线轨迹上长度为上述distance的部分上插入一个点;S216 重复执行步骤S212 3215,直到最后一个触摸点。其中,所述步骤S2中插入插值点的过程如下S221 以触摸点为控制点计算贝塞尔曲线轨迹;S222 根据以下公式计算插值点Γ π . dis tan ce ,insertCount =-xnumber_per snapewidth— —其中,insertCount为两点间插值点个数,distance为沿贝塞尔曲线轨迹方向上 距离已插值部分最近的一个触摸点到其前一点的距离,《1肚1!为已插值部分绘制的最后一 个笔形的宽度,number_per_shape为每个笔形需要绘制的点的个数;S223 判断insertOnmt是否小于1,若小于1,则增加已插值的贝塞尔曲线的长 度,跳转到步骤3222,否则执行步骤S2M ;S224 计算插值点的插值步长 stepLength = distance/insertCount ;S225 按所述步长在所述贝塞尔曲线轨迹上长度为上述肚计皿⑶的部分上插入 ー个点;S226 重复执行步骤S222 3225,直到最后一个触摸点。其中,所述步骤5221中计算贝塞尔曲线轨迹的方式为以当前点的前一点为控制 点,从当前点的前二点向当前点与当前点的前一点的中点计算贝塞尔曲线轨迹。其中,当已插值的贝塞尔曲线到达最后一个触摸点与其前一触摸点的中点时,在 所述最后一个触摸点到其与其前一触摸点的中点的直线轨迹上按所述步骤3222 步骤 S226进行直线插值。其中,所述number_per_shape的值为5 10的整数。其中,所述步骤53中,绘制预先设置的笔形的方式为根据预设的最大笔宽1和当前触摸设备感应的压力确定所述笔形沿笔杆方向的 大圆半径d2 = WXpressure根据如下公式确定笔尖方向的小圆半径dl = d2XkXpressure在两个圆的同一侧分别绘制一条与两圆都相切的直线,以形成封闭的形状,在两 圆的直径和两切线形成梯形,所述梯形的高度为h = HXpressure其中,H表示预设的最大笔行长度,k为形状比例参数。其中,所述k取值为0 1的浮点数,所述pressure量化到0 1浮点数。其中,所述预定阈值为0 5像素。(三)有益效果通过本专利技术的方法当触摸笔的运行速度很慢时,减少触摸点的个数,避免了笔迹在同一个区域重叠绘制导致的褶皱,同时节省了 CPU资源;而当触摸笔运动很快时,采用插值法进行插值,使得手写输入的毛笔笔迹平滑、连续。附图说明图1是本专利技术实施例的一种流程图;图2是图1的方法中采用直线插值方法的示意图;图3是图1的方法中采用贝塞尔曲线插值方法的示意图;图4是图1的方法中绘制笔迹的笔形示意图。具体实施例方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。如图1所示,为本专利技术实施例的一种流程图,包括步骤S101,根据触摸设备传递的触摸轨迹上触摸点坐标计算相邻两触摸点的距离。触摸笔在触摸设备的触摸屏上书写时触摸设备会记录触摸笔的位置坐标、压力等信息。 由于触摸笔是运动的,触摸笔的位置坐标形成一个连续的运动轨迹,触摸设备会根据触摸笔的运动速度记录若干触摸点。得到这些触摸点后根据其坐标计算相邻触摸点之间的距1 O步骤S102 判断上述距离是否小于预定阈值,若小于该阈值,则执行步骤S103,否则执行步骤S104。步骤S103,由于设备的CPU处理能力和事件通知的机制,导致设备通知触摸事件的间隔并不均衡,当触摸笔的运行速度很慢时,触摸事件会很频繁,导致上述距离会小于预定阈值,这样会导致笔迹在同一个区域重叠绘制。因此对于这种情况,按该阈值为间距的获取触摸点,这样避免了在同一个区域重叠绘制而且可以保证最终生成的笔迹连续、平滑,同时节省了 CPU资源。步骤S104,当触摸笔的运行速度很快时,触摸设备CPU捕捉到的触摸事件会很少, 因此触摸点也很少,若按这些触摸点去绘制笔形,那么生成的笔迹将不连续,为了避免这种情况的发生,本专利技术在相邻两个触摸点之间插入若干插值点本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种电子毛笔书写笔迹生成方法,其特征在于,包括以下步骤51根据触摸设备传递的触摸轨迹上触摸点坐标计算相邻两触摸点的距离;52若所述距离小于预定阈值,则按所述预定阈值为间距获取触摸点;若所述距离大于所述预定阈值,则在相邻两个触摸点之间插入插值点;53根据所述触摸轨迹上的点绘制预先设置的笔形以生成笔迹。2.如权利要求1所述的电子毛笔书写笔迹生成方法,其特征在于,所述步骤S2中插入插值点的过程如下5211计算所述触摸轨迹上的所有触摸点间的直线轨迹;5212根据以下公式计算插值点3.如权利要求1所述的电子毛笔书写笔迹生成方法,其特征在于,所述步骤S2中插入插值点的过程如下5221以触摸点为控制点计算贝塞尔曲线轨迹;5222根据以下公式计算插值点4.如权利要求3所述的电子毛笔书写笔迹生成方法,其特征在于,所述步骤S221中计算贝塞尔曲线轨迹的方式为以当前点的前一点为控制点,从当前点的前二点向当前点与当前点的前一点的中点计算贝塞尔曲线轨迹。5.如权利要求4所述的电子毛笔书写笔迹生成方法,其特征在于,当已插值的贝塞尔曲线到达最后一个触摸点与其前一...

【专利技术属性】
技术研发人员:谭韩成赵志强刘炎
申请(专利权)人:北京盛世宣合信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术