本发明专利技术公开了一种电子毛笔书写方法,包括以下步骤:S1:根据触摸设备传递的触摸轨迹上触摸点坐标计算相邻两触摸点的距离;S2:若所述距离小于预定阈值,则按所述预定阈值为间距获取触摸点;若所述距离大于所述预定阈值,则在相邻两个触摸点之间插入插值点;S3:根据所述触摸轨迹上的点绘制预先设置的笔形以生成笔迹,在触摸轨迹的转弯处按触摸设备获得的或根据笔迹的行进角度计算得到的当前笔形的笔形角度绘制当前笔形。本发明专利技术实现了在运算能力较低的手持设备上生成出模拟程度较高,真实感强的电子毛笔书写笔迹。
【技术实现步骤摘要】
本专利技术涉及计算机图形处理
,特别涉及一种电子毛笔书写方法及系统。技术背景中国毛笔书法是一门古老而深邃的艺术,是中华民族艺术宝库中一颗璀灿夺目的明珠,它伴随着中华文明的发展而发展。在计算机高速发展的今天,人们希望能使书法与时俱进,与现代科技相融合,如何在计算机上逼真的模拟出毛笔的书写效果是很多专家学者研究的方向。在众多的相关研究工作中,模拟毛笔书写笔迹主要的方法是采用硬件来获取输入数据,通过软件算法来对这些数据进行修正处理,以实现毛笔书写的效果,达到模拟真实毛笔动作的目的,如采用光导纤维来模拟倒立的毛笔笔头,通过在毛笔上添加传感器来捕捉捕获位置、压力等数据,并将这些数据转换成毛笔的各个参数,然后通过一系列的软件修正算法,来修正笔迹形状,模拟笔迹的书写效果。这些实现方法中,需要专用于毛笔笔迹的书写的硬件设备,设备成本高,同时,运笔过程中的“提按使转”无法得以体现,毛笔书写运行过程中若没有提按的参与,书法线条将是直来直去,僵硬呆板,线条质量就很差,甚至达不到书法艺术最起码的要求。现有技术中,运笔的轨迹是通过触摸笔在设备屏幕上划过而留下的轨迹,当触摸笔在设备屏幕上移动时,设备会以触摸事件的方式通知相应的处理软件当前触摸笔的位置、压力、时间、倾斜率等信息,由于设备的CPU处理能力和事件通知的机制,导致设备通知触摸事件的间隔并不均衡,当触摸笔的运行速度很慢时,触摸事件会很频繁,这样会导致笔迹在同一个区域重叠绘制,浪费CPU资源,而且,由于用户书写过程有抖动,如果每个像素的移动都进行绘制,则形成的笔迹有很多褶皱,不平滑;而当触摸笔运动很快时,触摸事件则会很少,这样会导致笔迹不连续。在笔画的转折或弯折处,若此时绘制笔形的角度没有变化,那么在笔画转折或弯折处的笔迹将会和真实的毛笔笔画相差甚远,使得电子毛笔书写的模拟程度不高,缺乏真实感。且在转弯处容易出现突起,因此,需要考虑增加基于物理力学模型,使笔形能够变化。根据对现有的毛笔模拟状态和成果的研究,一般对毛笔笔形变化的模拟均基于三维空间进行,有以圆锥笔形模拟笔头,有的研究每个笔毛的变形,有的将笔毛分成多簇,研究每一簇的中心骨架变形。在力学算法方面,有利用弹簧力量计算,也有通过能量最小化计算,都需要对受力进行细致的分析以及大量的积分运算。通过三维空间模拟笔头的变形,在模拟毛笔的真实感效果上比二维方式要好很多,但是三维模拟需要大量运算,对于常规的PC机来说都不能满足其流畅运行的需要,更不用说对于运算能力比较低的手持设备了,因此,虽然三维方式模拟更逼真,表现力更强,但对于手持设备来说可用性不高。由以上可知,在运算能力较低的手持设备上进行电子毛笔书写时生成出模拟程度不高,真实感强的毛笔笔迹是亟待解决的问题。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是如何在运算能力较低的手持设备上生成出模拟程度较高,真实感强的电子毛笔书写笔迹。( 二 )技术方案为解决上述技术问题,本专利技术提供了一种电子毛笔书写方法,包括以下步骤Sl 根据触摸设备传递的触摸轨迹上触摸点坐标计算相邻两触摸点的距离;S2 若所述距离小于预定阈值,则按所述预定阈值为间距获取触摸点;若所述距离大于所述预定阈值,则在相邻两个触摸点之间插入插值点;S3:根据所述触摸轨迹上的点绘制预先设置的笔形以生成笔迹,在触摸轨迹的转弯处按触摸设备获得的或根据笔迹的行进角度计算得到的当前笔形的笔形角度绘制当前笔形。其中,所述步骤S2中插入插值点的过程如下S2. 1 以触摸点为控制点计算贝塞尔曲线轨迹;S2. 2 根据以下公式计算插值点Γ π . dis tan ce ,insertLount =-χ number _ per _ shapewidth— —其中,insertCount为两点间插值点个数,distance为沿贝塞尔曲线轨迹方向上距离已插值部分最近的一个触摸点到其前一点的距离,width为已插值部分绘制的最后一个笔形的宽度,number_per_shape为每个笔形需要绘制的点的个数;S2. 3 判断insertCount是否小于1,若小于1,则增加已插值的贝塞尔曲线的长度,跳转到步骤S2. 2,否则执行步骤S2. 4 ;S2. 4stepLength = distance/insertCount ;S2. 5 按所述步长在所述贝塞尔曲线轨迹上长度为上述distance的部分上插入一个占.I /… S2. 6 重复执行步骤S2. 2 S2. 5,直到最后一个触摸点。其中,所述步骤S2. 1中计算贝塞尔曲线轨迹的方式为以当前点的前一点为控制点,从当前点的前二点向当前点与当前点的前一点的中点计算贝塞尔曲线轨迹。其中,当已插值的贝塞尔曲线到达最后一个触摸点与其前一触摸点的中点时,在所述最后一个触摸点到其与其前一触摸点的中点的直线轨迹上按所述步骤S2. 2 步骤 S2. 6进行直线插值。其中,所述步骤S3中,触摸设备获得当前笔形的笔形角度的方式为触摸设备的触摸屏检测触摸笔在屏幕平面上投影线与屏幕X轴的夹角,以所述夹角为当前笔形的笔形角度。其中,所述步骤S3中,笔迹出现顿笔或回锋的情况时,笔形角度即为所述行进角度,否则按如下公式计算得到当前笔形的笔形角度Angle Angle = Angl eprev+Angl ediff X TrunRat i οΓηη9 TrunRatio =---τL 」VEERxPprev2 其中,TrunRatio为角度调整的比例,VEER为预设转折或弯折处笔迹上的点数,Pprev为前一点的压力值,Anglepra为前一点处笔形角度,Angkdiff为当前点与前一点的笔迹的行进角度的角度差。其中,步骤S3中在绘制所述笔形时,还包括对所述笔形的变形,具体为若达到预设的变形条件,则按如下步骤对所述笔形进行变形以所述笔形的对称轴线上的质点根据预先设计的弹簧质点模型对所述质点进行迭代积分,得到所述变形后质点的坐标;根据变形后质点的坐标计算笔形边缘的坐标;根据笔形边缘坐标绘制变形后的笔形,所述预设的变形条件为在除顿笔和回锋的转弯笔迹处,笔形宽度大于预设的最小笔形宽度值和最短的质点间距离的较大值,且笔形角度和行进角度相差在60° 90°。其中,以变形前笔形的对称轴线为笔形骨架,笔形形状的计算方式如下在对称轴线上靠近笔尖的一端,按以下公式计算笔形边缘的点R = ^lxUrs-I2其中,R为笔形边缘点到对称轴线的距离,1为沿对称轴线从笔尖到当前点的距离,rs为靠近笔尖的小圆的半径,所述小圆的圆心为对称轴线上靠近笔尖一端的点;在对称轴线上靠近笔杆的一端,按以下公式计算笔形边缘的点R = ^jrs2 -(I-h-rbf其中,rb为靠近笔杆的大圆的半径,所述大圆的圆心为对称轴线上靠近笔杆一端的点,h为大圆圆心和小圆圆心之间的距离;在对称轴线对应长度为h的一段上,按以下公式计算笔形边缘的点r π π (rb - rs) χ (I- rs)R = --—-- + rs]h以所述边缘点为控制点采用贝塞尔曲线连接所述边缘点,大圆半径rb = WXpressure根据如下公式确定笔尖方向的小圆半径和h rs = rb XkX pressureh = HXpressure其中,H表示预设的最大笔本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:谭韩成,赵志强,刘炎,
申请(专利权)人:北京盛世宣合信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。