一种基于力信息的毛笔书法表达方法转让专利

申请号 : CN201110360097.3

文献号 : CN102436348B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴仲城罗健飞陈海强申飞

申请人 : 中国科学院合肥物质科学研究院

摘要 :

一种基于力信息的毛笔书法表达方法,采用三维力传感器来获取毛笔笔毫与纸张平面接触产生的三维手写力矢量信息,即当有毛笔手写过程发生时,三维力传感器可以实时的感知和输出作用在其上的三维手写动态力信息变化。通过采集和转换这些信息,计算毛笔笔毫与纸张平面接触产生的笔触区域,然后根据力信息实现对笔触区域的操作和处理以形成笔迹,并计算在笔迹边缘的墨水扩散方式。特别是采用了墨水十字扩散方法来完成对笔迹边缘墨水扩散的计算,最终实现在力信息下的毛笔书法表达效果。本发明使书写者真实体验由于手写力的不同而引起毛笔书法的表达差异,为在计算机上进行毛笔字的创作和书法训练,或在毛笔书法矫正中,提供了一种新的技术手段。

权利要求 :

1.一种基于力信息的毛笔书法表达方法,其特征在于:通过采集和转换三维力传感器获取毛笔笔毫与签字平面接触产生的三维手写力矢量信息,计算毛笔笔毫与纸张平面接触产生的笔触区域,根据力信息对笔触区域操作和处理形成笔迹,用墨水十字扩散方法计算在笔迹边缘的墨水扩散方式,实现力信息下的毛笔书法表达,方法步骤是:a、初始化三维力传感器:包括提供电源需求、内存需求、零点修正,温度补偿以及接口驱动需求,以保证三维力传感器能够正确而有效的输出数据;

b、获得三维手写力数据:包括当书写者开始进行毛笔书法时,三维力传感器会实时感知并输出书写者在签字过程所产生的力信号,通过采集和转换这些力信号,获得三维手写力数据Rx(i)、Ry(i)、Rz(i),其中Rx(i)为t=iT时刻采集三维力传感器x轴方向上的力数值,Ry(i)为t=iT时刻采集三维力传感器y轴方向上的力数值据,Rz(i)为t=iT时刻采集三维力传感器z轴方向上的力数值,i为经历的系统采样周期个数,T为系统采样周期;

c、获得三维手写力信息数值:包括对获得的三维手写力数据Rx(i)、Ry(i)、Rz(i)通过解耦矩阵进行解耦处理,使每一维的输出只反映一个变量的变化,以获得真实和准确的手写力信息数值Vx(i)、Vy(i)、Vz(i),其中Vx(i)为t=iT时刻x轴方向上的手写力信息数值,Vy(i)为t=iT时刻y轴方向上的手写力信息数值,Vz(i)为t=iT时刻z轴方向上的手写力信息数值,T为系统采样周期;

d、预处理计算:包括滤波计算和平滑计算,以降低噪声对数值的影响,根据c步骤经解耦运算得到的三维手写力信息数值Vx(i)、Vy(i)、Vz(i),分别经过滤波计算和平滑计算得到Fx(i)、Fy(i)、Fz(i),其中Fx(i)为t=iT时刻x轴方向上的预处理后手写力信息数值,Fy(i)为t=iT时刻y轴方向上的预处理后手写力信息数值,Fz(i)为t=iT时刻z轴方向上的预处理后手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期;

e、计算笔触区域:包括填充和形成毛笔书法轨迹、计算笔触区域的缩放系数、计算笔触区域内的旋转坐标和前后笔触区域之间利用线性插值完成连线填充,其中采用步骤d预处理后的三维手写力信息数值Fx(i)、Fy(i)、Fz(i)计算笔触区域的缩放系数,并采用步骤d预处理后的三维手写力信息数值Fx(i)、Fy(i)、Fz(i)计算计算笔触区域内的旋转坐标;

f、墨水扩散计算:采用十字扩散法计算,包括以当前点为扩散中心,墨水在当前点处以“十字”形式即向当前点的上下左右4个邻域点进行扩散并凝聚,同时将这4个点加入“扩散队列”,且每个点的墨水量为所在点的墨水量减去所在点的吸墨量;步骤:将笔迹边缘上所有的点加入“扩散队列”中,并为每个点赋上墨水量的值;

判断“扩散队列”是否为空,如果不为空,取出“扩散队列”第一个元素为当前点F,并为F着色;

F的墨水量大于F的吸墨量?

如果是,墨水以F点为中心,进行“十字”扩散计算;

如果否,则返回到判断“扩散队列”为空;

如果“扩散队列”为空,结束完成墨水扩散计算。

2.根据权利要求1所述一种基于力信息的毛笔书法表达方法,其特征是:所述d、预处理计算;包括卡尔曼滤波计算和高斯平滑滤波计算,其中卡尔曼滤波计算是实现滤波处理,使期望的输出数据和实际输出数据的均方根误差小;高斯平滑滤波计算是为了得到饱满的钢毛笔书写字迹,采用对数字化后信号的平滑处理,降低误差的影响。

3.根据权利要求1所述一种基于力信息的毛笔书法表达方法,其特征是:所述e、计算笔触区域:包括填充和形成毛笔书法轨迹,是包括湿笔笔触区域和枯笔笔触区域,当毛笔笔毫中墨水的含量足够时,采用湿笔笔触区域来填充和形成毛笔书法轨迹,当毛笔笔毫中墨水的含量不足时,采用枯笔笔触区域来填充和形成毛笔书法轨迹。

4.根据权利要求1所述一种基于力信息的毛笔书法表达方法,其特征是:所述e、计算笔触区域:包括计算笔触区域的缩放系数,是指分别使用湿笔笔毫和枯笔笔毫进行书法时,其在纸张表面形成的笔触区域具有不同的缩放程度,设Cs表示湿笔笔毫的弹性系数,Ck表示枯笔笔毫的弹性系数,ss(i)为t=iT时刻湿笔笔触区域的缩放系数,sk(i)为t=iT时刻枯笔笔触区域的缩放系数,Fz(i)为t=iT时刻z轴方向上的处理后手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期,当采用湿笔笔毫进行书法时,其形成的t=iT时刻湿笔笔触区域的缩放系数ss(i)为:当采用枯笔笔毫进行书法时,其形成的t=iT时刻枯笔笔触区域的缩放系数sk(i)为:

即根据湿笔笔毫的弹性系数Cs,枯笔笔毫的弹性系数Ck和t=iT时刻z轴方向上的处理后手写力信息数值Fz(i),通过运算得到t=iT时刻湿笔笔触区域的缩放系数ss(i)和t=iT时刻枯笔笔触区域的缩放系数sk(i)。

5.根据权利要求1所述一种基于力信息的毛笔书法表达方法,其特征是:所述e、计算笔触区域:包括计算笔触区域内的旋转坐标,是根据步骤d预处理后的三维手写力信息数值Fx(i)、Fy(i)、Fz(i)计算分别得到湿笔和枯笔笔触区域内的旋转坐标,即根据t=iT时刻x轴方向上的预处理后手写力信息数值Fx(i)和t=iT时刻y轴方向上的处理后手写力信息数值Fy(i),通过运算得到笔毫旋转角度θ(i);

根据t=iT时刻湿笔笔触区域中的点的原始坐标xs0(i)、ys0(i),t=iT时刻毛笔笔毫旋转的角度θ(i)和t=iT时刻湿笔笔触区域的缩放系数ss(i),通过运算得到t=iT时刻湿笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标xs1(i)、ys1(i);

根据t=iT时刻枯笔笔触区域中的点的原始坐标xk0(i)、yk0(i),t=iT时刻毛笔笔毫旋转的角度θ(i)和t=iT时刻枯笔笔触区域的缩放系数sk(i),通过运算得到t=iT时刻枯笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标xk1(i)、yk1(i)。

6.根据权利要求1所述一种基于力信息的毛笔书法表达方法,其特征是:所述e、计算笔触区域:包括前后笔触区域之间利用线性插值完成连线填充,是毛笔书法过程是一个连续的过程,根据书写过程中所形成的笔触区域大小,因人而异的笔毫旋转角度,采用线性插值的方法来完成对前后笔触区域之间连线的绘制,即在前后形成的两个相邻笔触区域之间,利用线性插值完成连线填充操作,形成毛笔书法笔迹。

说明书 :

一种基于力信息的毛笔书法表达方法

技术领域

[0001] 本发明涉及计算机信息领域和计算机艺术仿真技术领域,特别涉及一种基于力信息的毛笔书法表达方法。

背景技术

[0002] 中国毛笔书法艺术已有几千年的历史,古往今来的文人墨客无不喜欢“挥毫泼墨”,借助毛笔来传情达意,无数的书法家为我们留下了精美的艺术瑰宝。作为书法工具的毛笔,兼具操作简便和表现力丰富的特性。随着计算机技术飞速发展,越来越多的学者开始关注毛笔书法表达的研究。毛笔书法具有极强的表现力,能产生丰富的视觉效果,这主要依赖于毛笔笔毫形态的复杂多变,以及墨水在纸张上扩散的不确定性。所以,在仿真毛笔书法效果时,主要关注于毛笔的模型和墨水在纸张上扩散的模型。毛笔书法表达的实现,有助于在计算机中模拟毛笔练字系统,不仅完成了毛笔书法艺术的数字化,而且避免了现实中毛笔练字的笔纸墨的浪费。
[0003] 现有专利中,专利号为CN101373539B的“毛笔笔迹的书写方法及书写装置”提出一种毛笔雨点模型,通过应用雨点模型,并依据预设的毛笔模型的各初始参数值,所捕捉的采样点的位置坐标和压力值来确定采样点的雨点模型的各参数,来模拟各种毛笔特效。专利号为CN100338612C的“基于毛笔和宣纸的水墨传输模型与仿真算法”构造了毛笔模型和宣纸模型,实现墨水在毛笔和宣纸之间的交换及墨水在宣纸上传输,仿真中国水墨画效果。
[0004] 在对上述现有技术进行分析后,发明人发现:
[0005] 现有技术中对毛笔书法效果的表达是通过计算机图形学或计算机特定算法来实现的,如利用毛笔和纸张图形学来模拟毛笔在纸张上书写产生的效果,或利用毛笔雨点模型来达到各种毛笔书法特效,但现有的技术多是通过设置复杂的参数,或利用复杂的特定设备,实现毛笔书法或水墨画渲染,对普通的用户不实用,而且其计算复杂度较高,对计算机性能的要求较高,特别是这些算法都不是实际反映毛笔书法的物理过程,实际上毛笔书法过程是一个力作用和反馈过程,即毛笔书写的形成是由人手的作用力带动毛笔笔毫相对纸张的接触运动而产生的,这一过程所形成的特殊毛笔书写风格,如形态、神情、风韵、意境和气势之美,是由于书写者书写力作用形成的,并且这一过程是自然形成的。

发明内容

[0006] 本发明所要解决的技术问题即目的是:避免上述现有技术中对毛笔书法表达的不足之处,提出一种基于力信息的毛笔书法表达方法,利用三维力传感器获取毛笔书写过程产生的三维书写力信息,并基于三维书写力的大小和方向,模拟毛笔书法的创作效果。
[0007] 本发明的技术方案是:
[0008] 一种基于力信息的毛笔书法表达方法,特别是:采用三维力传感器来获取毛笔笔毫与签字平面接触产生的三维手写力矢量信息,即当有毛笔手写过程发生时,三维力传感器可以实时的感知和输出作用在其上的三维手写动态力信息变化,通过采集和转换这些信息,计算毛笔笔毫与纸张平面接触产生的笔触区域,然后根据力信息实现对笔触区域的操作和处理以形成笔迹,并计算在笔迹边缘的墨水扩散方式,特别是采用了墨水十字扩散方法来完成对笔迹边缘墨水扩散的计算,最终实现在力信息下的毛笔书法表达效果,方法步骤包括:
[0009] 初始化三维力传感器;
[0010] 获得三维手写力数据;
[0011] 获得三维手写力信息数值;
[0012] 预处理计算;
[0013] 计算笔触区域;
[0014] 墨水扩散计算。
[0015] 初始化三维力传感器,具体包括:
[0016] 为三维力传感器正常工作提供符合要求的环境需求,如电源需求,内存需求以及接口驱动需求等,以保证三维力传感器能够正确而有效的输出数据。
[0017] 获得三维手写力数据,具体包括:
[0018] 当书写者开始进行毛笔书法时,三维力传感器会实时感知并输出书写者在签字过程所产生的力信号,通过采集和转换这些力信号,可获得三维手写力数据,设Rx(i)为t=iT时刻采集三维力传感器x轴方向上的力数据,Ry(i)为t=iT时刻采集三维力传感器y轴方向上的力数据,Rz(i)为t=iT时刻采集三维力传感器z轴方向上的力数据,i为经历的系统采样周期个数,T为系统采样周期;
[0019] 即采集t=iT时刻三维力传感器输出的力信号,获得t=iT时刻三维手写力数据Rx(i)、Ry(i)、Rz(i)。
[0020] 获得三维手写力信息数值,具体包括:
[0021] 原始获得的三维手写力数据由于三维力传感器自身应变片蠕变现象,会在三维输出上存在相互耦合关系,这种耦合关系会影响数据的正确性,因此需要对于获得的三维手写力数据通过解耦矩阵进行解耦处理,使每一维的输出只反映一个变量的变化,以获得更加真实和准确的手写力信息数值,设Rx(i)为t=iT时刻采集三维力传感器x轴方向上的力数据,Ry(i)为t=iT时刻采集三维力传感器y轴方向上的力数据,Rz(i)为t=iT时刻采集三维力传感器z轴方向上的力数据,Vx(i)为t=iT时刻x轴方向上的手写力信息数值,Vy(i)为t=iT时刻y轴方向上的手写力信息数值,Vz(i)为t=iT时刻z轴方向上的手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期;
[0022] 对三维手写力数据Rx(i)、Ry(i)、Rz(i)进行解耦运算得到t=iT时刻x轴方向上的手写力信息数值Vx(i);
[0023] 对三维手写力数据Rx(i)、Ry(i)、Rz(i)进行解耦运算得到t=iT时刻y方向上的手写力信息数值Vy(i);
[0024] 对三维手写力数据Rx(i)、Ry(i)、Rz(i)进行解耦运算得到t=iT时刻z轴方向上的手写力信息数值Vz(i);
[0025] 即根据t=iT时刻三维手写力数据Rx(i)、Ry(i)、Rz(i),通过解耦运算得到t=iT时刻三维手写力信息数值Vx(i)、Vy(i)、Vz(i)。
[0026] 预处理计算,具体包括:三维力传感器输出的数据在传输过程中会受到噪声的影响,特别是数据在采样和量化的时候会产生量化噪声,这些噪声反映在笔迹绘制上,会表现出笔画的不光滑,即产生毛刺现象,为了得到饱满的毛笔书写字迹,必须降低误差的影响,这就需要对解耦后的数据进行预处理,具体通过滤波计算和平滑计算来实现预处理计算,设Vx(i)为t=iT时刻x轴方向上的手写力信息数值,Vy(i)为t=iT时刻y轴方向上的手写力信息数值,Vz(i)为t=iT时刻z轴方向上的手写力信息数值,Fx(i)为t=iT时刻x轴方向上的预处理后手写力信息数值,Fy(i)为t=iT时刻y轴方向上的预处理后手写力信息数值,Fz(i)为t=iT时刻z轴方向上的预处理后手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期;
[0027] 对t=iT时刻x轴方向上的手写力信息数值Vx(i)进行预处理后得到t=iT时刻x轴方向上的预处理后手写力信息数值Fx(i);
[0028] 对t=iT时刻y轴方向上的手写力信息数值Vy(i)进行预处理后得到t=iT时刻y轴方向上的预处理后手写力信息数值Fy(i);
[0029] 对t=iT时刻z轴方向上的手写力信息数值Vz(i)进行预处理后得到t=iT时刻z轴方向上的预处理后手写力信息数值Fz(i);
[0030] 即根据t=iT时刻三维手写力信息数值Vx(i)、Vy(i)、Vz(i),通过滤波计算和平滑计算得到t=iT时刻预处理后手写力信息数值Fx(i)、Fy(i)、Fz(i)。
[0031] 计算笔触区域,具体包括:
[0032] 在毛笔书法中,毛笔笔毫在三维手写力作用下与纸张接触运动形成的区域即笔触区域分为两种:一种是湿笔情况,即毛笔笔毫上的墨水分配充足的情况,笔毫抱成一团,此时笔毫在三维手写力的作用下形成的笔触区域收缩在一起,形成“团”状;另一种是枯笔情况,即毛笔笔毫上的墨水分配不够的情况,笔毫较为松散,笔毫在三维手写力的作用下出现了分叉的现象,此时形成的笔触区域呈分散状。另外,不同的书写者由于自身的书法特点,或者为了达到一个具有个性化的毛笔书法风格,会在运笔过程中,对毛笔笔毫进行旋转,例如在绘制“横”时,书写者会有意在起笔处进行旋转,以形成特有的笔风。当毛笔在书法过程中被旋转时,笔毫会带动笔触区域内的坐标发生变化,即产生旋转坐标,根据对人手握毛笔进行书法的过程进行分析,上述笔毫旋转过程,是在三维手写力控制下完成的,即笔毫旋转则是由于三维手写力的方向引起的,并且笔毫旋转的角度可通过三维手写力信息数值计算获得。设ss(i)为t=iT时刻湿笔笔触区域的缩放系数,sk(i)为t=iT时刻枯笔笔触区域的缩放系数,xs0(i)、ys0(i)为t=iT时刻湿笔笔触区域中的点的原始坐标,xs1(i)、ys1(i)为t=iT时刻湿笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标,xk0(i)、yk0(i)为t=iT时刻枯笔笔触区域中的点的原始坐标,xk1(i)、yk1(i)为t=iT时刻枯笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标,θ(i)为t=iT时刻毛笔笔毫旋转的角度,Fx(i)为t=iT时刻x轴方向上的预处理后手写力信息数值,Fy(i)为t=iT时刻y轴方向上的处理后手写力信息数值,Fz(i)为t=iT时刻z轴方向上的处理后手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期;
[0033] 即根据t=iT时刻x轴方向上的预处理后手写力信息数值Fx(i)和t=iT时刻y轴方向上的处理后手写力信息数值Fy(i),通过运算得到t=iT时刻毛笔笔毫旋转的角度θ(i)。
[0034] 根据t=iT时刻湿笔笔触区域中的点的原始坐标xs0(i)、ys0(i),t=iT时刻湿笔笔触区域的缩放系数ss(i)和t=iT时刻毛笔笔毫旋转的角度θ(i),通过运算得到t=iT时刻湿笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标xs1(i)、ys1(i);
[0035] 根据t=iT时刻枯笔笔触区域中的点的原始坐标xk0(i)、yk0(i),t=iT时刻枯笔笔触区域的缩放系数sk(i)和t=iT时刻毛笔笔毫旋转的角度θ(i),通过运算得到t=iT时刻枯笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标xk1(i)、yk1(i)。
[0036] 墨水扩散计算,具体包括:
[0037] 在毛笔书法中,毛笔笔毫运动所留下的附在纸张上的墨水在手写力的作用下会发生扩散现象,且这种扩散现象是具有随机性的,正是这种随机的墨水扩散,使得毛笔书法艺术具有无穷的魅力和鉴赏力。为了实现对墨水扩散的模拟,采用墨水十字扩散方法,来实现对笔触区域形成的笔迹边缘进行墨水扩散计算,特别是能够实现一种毛笔书法的晕化效果,以形成具有个性化和美观的毛笔书法。
[0038] 作为对现有技术的进一步改进,本发明的有益效果是:
[0039] 相对于现有技术,本发明的方法步骤为:初始化三维力传感器、获得三维手写力数据、获得三维手写力信息数值、预处理计算、计算笔触区域、墨水扩散计算。毛笔书法过程是一个力作用和反馈过程,即毛笔书写的形成是由人手的作用力带动毛笔笔毫相对纸张的接触运动而产生的,这一过程所形成的特殊毛笔书写风格,如形态、神情、风韵、意境和气势之美,是由于书写者书写力作用形成的,并且这一过程是自然形成的。本发明提供的毛笔书法表达方法,有效的解决了现有毛笔书法表达中对无法真实体现手写力信息的作用过程,当有毛笔手写过程发生时,三维力传感器可以实时的感知和输出作用在其上的三维手写动态力信息变化,通过采集和转换这些信息,计算毛笔笔毫与纸张平面接触产生的笔触区域,然后根据力信息实现对笔触区域的操作和处理以形成笔迹,并计算在笔迹边缘的墨水扩散方式,特别是采用了墨水十字扩散方法来完成对笔迹边缘墨水扩散的计算,能够实现一种毛笔书法的晕化效果,以形成具有个性化和美观的毛笔书法,最终实现在力信息下的毛笔书法表达效果;
[0040] 本发明提供的毛笔书法表达方法为目前毛笔书法培训和毛笔书法训练提供了一种新的解决方案,特别是通过利用三维力传感器来实现对毛笔书法过程中产生的三维手写力信息进行获取,使得书写者能够真实体验由于手写力的不同而引起毛笔书法的表达差异,从而为解决目前毛笔书法培训和毛笔书法训练,特别是在毛笔书法矫正中,提供了一种新的技术手段。

附图说明

[0041] 图1为本发明毛笔书法表达方法流程图;
[0042] 图2为本发明解耦矩阵排列示意图;
[0043] 图3为本发明预处理计算流程图;
[0044] 图4为本发明计算笔触区域流程图;
[0045] 图5为本发明湿笔笔触区域示意图;
[0046] 图6为本发明枯笔笔触区域示意图;
[0047] 图7为本发明毛笔笔毫在手写力作用下的运动控制示意图;
[0048] 图8为本发明墨水扩散计算方法流程图;
[0049] 图9为本发明毛笔书法实施例表达示意图;
[0050] 其中:
[0051] 图9中a为本发明实施例湿笔毛笔书法表达示意图;
[0052] 图9中b为本发明枯笔毛笔书法实施例表达示意图。

具体实施方式

[0053] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的具体实施方式作进一步的详细说明。
[0054] 图1为本发明毛笔书法表达方法流程图,图2为本发明解耦矩阵排列示意图;图1的步骤具体包括:
[0055] 步骤100:开始;具体的,表示开始执行毛笔书法表达操作流程。
[0056] 步骤200:初始化三维力传感器;具体的,当进行传感器数据采集和信息获取时,需要相应的资源支持,如内存资源、能量资源、设备资源以及端口资源等,为了能使这些资源得到满足,以使传感器能够有效和实时的输出,需要对三维力传感器进行初始化操作,这些操作内容包括电源供应、零点修正,以及温度补偿等。
[0057] 步骤300:获得三维手写力数据;具体的,当书写者开始进行毛笔书法时,三维力传感器会实时感知并输出书写者在签字过程所产生的力信号,通过采集和转换这些力信号,可获得三维手写力数据。
[0058] 设Rx(i)为t=iT时刻采集三维力传感器x轴方向上的力数据,Ry(i)为t=iT时刻采集三维力传感器y轴方向上的力数据,Rz(i)为t=iT时刻采集三维力传感器z轴方向上的力数据,i为经历的系统采样周期个数,T为系统采样周期;
[0059] 即采集t=iT时刻三维力传感器输出的力信号,获得t=iT时刻三维手写力数据Rx(i)、Ry(i)、Rz(i)。
[0060] 步骤400:获得三维手写力信息数值;具体的,原始获得的三维手写力数据由于三维力传感器自身应变片蠕变现象,会在三维输出上存在相互耦合关系,这种耦合关系会影响数据的正确性,因此需要对于获得的三维手写力数据通过解耦矩阵进行解耦处理,使每一维的输出只反映一个变量的变化,以获得更加真实和准确的手写力信息数值。
[0061] 本步骤以z轴为例,介绍如何根据获得的三维手写力数据进行解耦运算得到手写力信息数值的方法,参见图2,图2为本发明解耦矩阵排列示意图;
[0062] 设Rx(i)为t=iT时刻采集三维力传感器x轴方向上的力数据,Ry(i)为t=iT时刻采集三维力传感器y轴方向上的力数据,Rz(i)为t=iT时刻采集三维力传感器z轴方向上的力数据,Vz(i)为t=iT时刻x轴方向上的手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期,C为解耦矩阵,其排列形式参见图2解耦矩阵排列示意图,通过解耦计算即可得到在t=iT时刻x轴方向上的手写力信息数值Vz(i),即:
[0063] 其中N≥1表示力数据采集的总点数;
[0064] 同理,设Vx(i)为t=iT时刻x轴方向上的手写力信息数值,Vy(i)为t=iT时刻y轴方向上的手写力信息数值;
[0065] 通过解耦计算即可得到在t=iT时刻x轴方向上的手写力信息数值Vx(i),即:
[0066] 其中N≥1表示力数据采样的总点数;
[0067] 通过解耦计算即可得到在t=iT时刻y轴方向上的手写力信息数值Vy(i),即:
[0068] 其中N≥1表示力数据采集的总点数;
[0069] 即根据t=iT时刻三维手写力数据Rx(i)、Ry(i)、Rz(i)和解耦矩阵C,通过解耦运算得到t=iT时刻三维手写力信息数值Vx(i)、Vy(i)、Vz(i)。
[0070] 步骤500:预处理计算;具体的,三维力传感器输出的数据在传输过程中会受到噪声的影响,特别是数据在采样和量化的时候会产生量化噪声,这些噪声反映在笔迹绘制上,会表现出笔画的不光滑,即产生毛刺现象,为了得到饱满的毛笔书写字迹,必须降低误差的影响,这就需要对解耦后的数据进行预处理计算。
[0071] 其中,预处理计算具体包括滤波计算和平滑计算,滤波计算实现对噪声干扰的降低;平滑计算实现对笔迹绘制的光滑处理。
[0072] 设Vx(i)为t=iT时刻x轴方向上的手写力信息数值,Vy(i)为t=iT时刻y轴方向上的手写力信息数值,Vz(i)为t=iT时刻z轴方向上的手写力信息数值,Fx(i)为t=iT时刻x轴方向上的预处理后手写力信息数值,Fy(i)为t=iT时刻y轴方向上的预处理后手写力信息数值,Fz(i)为t=iT时刻z轴方向上的预处理后手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期,有:
[0073] 对t=iT时刻x轴方向上的手写力信息数值Vx(i)进行预处理后得到t=iT时刻x轴方向上的预处理后手写力信息数值Fx(i);
[0074] 对t=iT时刻y轴方向上的手写力信息数值Vy(i)进行预处理后得到t=iT时刻y轴方向上的预处理后手写力信息数值Fy(i);
[0075] 对t=iT时刻z轴方向上的手写力信息数值Vz(i)进行预处理后得到t=iT时刻z轴方向上的预处理后手写力信息数值Fz(i);
[0076] 即根据t=iT时刻三维手写力信息数值Vx(i)、Vy(i)、Vz(i),通过滤波计算和平滑计算得到t=iT时刻预处理后手写力信息数值Fx(i)、Fy(i)、Fz(i)。
[0077] 步骤600:计算笔触区域;具体的,在毛笔书法中,毛笔笔毫在三维手写力作用下与纸张接触运动形成的区域即笔触区域分为两种,一种是湿笔情况,即毛笔笔毫上的墨水分配充足的情况,笔毫抱成一团,此时笔毫在三维手写力的作用下形成的笔触区域收缩在一起,形成“团”状,另一种是枯笔情况,即毛笔笔毫上的墨水分配不够的情况,笔毫较为松散,笔毫在三维手写力的作用下出现了分叉的现象,此时形成的笔触区域呈分散状,另外,不同的书写者由于自身的书法特点,或者为了达到一个具有个性化的毛笔书法风格,会在运笔过程中,对毛笔笔毫进行旋转,例如在绘制“横”时,书写者会有意在起笔处进行旋转,以形成特有的笔风,当毛笔在书法过程中被旋转时,笔毫会带动笔触区域内的坐标发生变化,即产生旋转坐标,根据对人手握毛笔进行书法的过程进行分析,上述笔毫旋转过程,是在三维手写力控制下完成的,即笔毫旋转是由于三维手写力的方向引起的,并且笔毫旋转的角度可通过三维手写力信息数值计算获得。
[0078] 步骤700:墨水扩散计算;具体的,在毛笔书法中,毛笔笔毫运动所留下的附在纸张上的墨水在手写力的作用下会发生扩散现象,且这种扩散现象是具有随机性的,正是这种随机的墨水扩散,使得毛笔书法艺术具有无穷的魅力和鉴赏力。为了实现对墨水扩散的模拟,通过采集的包含了书写者自身所特有的手写力信息数据来实现对笔触区域的边缘进行墨水扩散计算,特别是采用了墨水十字扩散算法来完成对边缘墨水扩散计算,以使得书法表达效果更加具有个性化,体现自然性。
[0079] 步骤800:判断手写是否结束?如果是则跳到步骤900,停止计算,如果否则返回步骤300,获取手写三维力数据,继续进行毛笔书法表达处理;具体的,当界面收到结束指令后即可判断手写输入已经结束。
[0080] 步骤900:结束;具体的,表示毛笔书法表达操作流程完成。
[0081] 图3为本发明预处理计算流程图;其步骤具体包括:
[0082] 步骤510:开始;具体的,表示开始对三维手写力信息数值进行预处理计算。
[0083] 步骤520:卡尔曼滤波处理;具体的,数字化后的三维力传感器输出的数据在传输过程中会受到噪声的影响,特别是当噪声形式为白噪声产生的随机信号时,期望的输出数据将会和实际输出数据之间产生较大的误差,为了降低这种误差,以提高手写力信息准确性,采用滤波计算对三维手写力信息数值进行滤波处理,使期望的输出数据和实际输出数据的均方根误差达到最小,可采用卡尔曼滤波计算方法来实现。
[0084] 步骤530:高斯平滑处理;具体的,毛笔书写过程产生的手写信息是连续动态的,被传感器采集后输出的信号类型为模拟信号,经过取样和量化后成为数字信号,才能实现数字化处理,但是数据在采样和量化的时候会产生量化噪声,这些噪声反映在笔迹绘制上,会表现出笔画的不光滑,即产生毛刺现象,为了得到饱满的毛笔书写字迹,采用高斯平滑计算来实现对数字化后信号的平滑处理,从而降低误差的影响,可采用高斯平滑计算方法来实现。
[0085] 步骤540:结束;具体的,表示完成对三维手写力信息数值的预处理计算。
[0086] 图4为本发明计算笔触区域的流程图,图5为本发明湿笔笔触区域示意图,图6为本发明枯笔笔触区域示意图,图7为本发明毛笔笔毫在手写力作用下的运动控制示意图;
[0087] 其中图4的步骤具体包括:
[0088] 步骤610:开始;具体的,表示开始对预处理后的三维手写力信息数值进行计算得到笔触区域。
[0089] 步骤620:获取垂直纸面的书写力;具体的,从预处理后的三维手写力信息数值中,获取垂直与纸面的书写力信息数值。
[0090] 设Fx(i)为t=iT时刻x轴方向上的预处理后手写力信息数值,Fy(i)为t=iT时刻y轴方向上的处理后手写力信息数值,Fz(i)为t=iT时刻z轴方向上的处理后手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期,根据手写力在三维空间坐标系中分解可知,t=iT时刻z轴方向上的处理后手写力信息数值Fz(i)即为垂直与纸面的书写力信息数据。
[0091] 步骤630:判断笔毫是否有足够的墨水?如果是,则跳到步骤640,使用湿笔笔触区域,如果否,则跳到步骤650,使用枯笔笔触区域;具体的,在毛笔书法中,毛笔笔毫在手写力作用下与纸张接触运动形成的区域即笔触区域分为两种,一种是湿笔情况,即毛笔笔毫上的墨水分配充足的情况,笔毫抱成一团,此时笔毫在手写力的作用下形成的笔触区域收缩在一起,形成“团”状,如图5为本发明湿笔笔触区域示意图所示;另一种是枯笔情况,即毛笔笔毫上的墨水分配不够的情况,笔毫较为松散,笔毫在手写力的作用下出现了分叉的现象,此时形成的笔触区域呈分散状,如图6为本发明枯笔笔触区域示意图所示。
[0092] 因此在湿笔情况下和在枯笔情况下所形成的毛笔书法轨迹样式是不相同的,例如在湿笔情况下,形成的毛笔书法轨迹具有光滑,流畅等特性,而在枯笔情况下,形成的毛笔书法轨迹则易于体现出“飞白”等书法创造效果,因此在毛笔书法绘制过程中,需要实时判断笔毫中墨水的含量,以实现不同的书法表达效果。
[0093] 步骤640:使用湿笔笔触区域;具体的,当毛笔笔毫中墨水的含量足够时,采用湿笔效果来填充和形成毛笔书法轨迹,如图5为本发明湿笔笔触区域示意图所示。
[0094] 步骤650:使用枯笔笔触区域;具体的,当毛笔笔毫中墨水的含量不足时,采用枯笔效果来填充和形成毛笔书法轨迹,如图6为本发明枯笔笔触区域示意图所示。
[0095] 步骤660:计算笔触区域的缩放系数;具体的,在毛笔书法中,不同毛笔笔毫在书写者手写力作用下,会在纸张表面上形成不同的笔触区域,即当分别使用湿笔笔毫和枯笔笔毫进行书法时,其在纸张表面形成的笔触区域具有不同的缩放程度,并进而影响了毛笔书法的轨迹绘制。把毛笔笔毫看成是具有某种弹性特性的材料,则在手写压力的作用下,不同毛笔笔毫所形成的笔触区域的缩放程度可定量的表示与手写压力的大小成正比,设Cs表示湿笔笔毫的弹性系数,Ck表示枯笔笔毫的弹性系数,ss(i)为t=iT时刻湿笔笔触区域的缩放系数,sk(i)为t=iT时刻枯笔笔触区域的缩放系数,Fz(i)为t=iT时刻z轴方向上的处理后手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期,有:
[0096] 当采用湿笔笔毫进行书法时,其形成的t=iT时刻湿笔笔触区域的缩放系数ss(i)为:
[0097]
[0098] 当采用枯笔笔毫进行书法时,其形成的t=iT时刻枯笔笔触区域的缩放系数sk(i)为:
[0099]
[0100] 即根据湿笔笔毫的弹性系数Cs,枯笔笔毫的弹性系数Ck和t=iT时刻z轴方向上的处理后手写力信息数值Fz(i),通过运算得到t=iT时刻湿笔笔触区域的缩放系数ss(i)和t=iT时刻枯笔笔触区域的缩放系数sk(i)。
[0101] 步骤670:计算笔触区域内的旋转坐标;具体的,毛笔在书法过程中,不同的书写者由于自身的书法特点,或者为了达到一个具有个性化的毛笔书法风格,会在运笔过程中,对毛笔进行旋转,例如在绘制“横”时,书写者会有意在起笔处进行旋转,以形成特有的笔风,当毛笔在书法过程中被旋转时,笔毫会带动笔触区域内的坐标发生变化,即产生旋转坐标,根据对人手握毛笔进行书法的过程进行分析,上述笔毫旋转过程,是在三维手写力控制下完成的,即笔毫旋转是由于三维手写力的方向引起的,并且笔毫旋转的角度可通过三维手写力大小和方向计算获得。此外,不同毛笔笔毫在书写者手写力作用下所形成的笔触区域也会影响笔毫旋转,即在湿笔笔触区域和枯笔笔触区域中,笔毫旋转的范围是不同的,因此可以通过笔触区域的缩放来加权笔毫旋转,以达到一种良好的毛笔书法效果。
[0102] 为了能够更好的理解上述步骤,说明如何根据手写力信息数值计算分别得到湿笔和枯笔笔触区域内的旋转坐标,设ss(i)为t=iT时刻湿笔笔触区域的缩放系数,sk(i)为t=iT时刻枯笔笔触区域的缩放系数,xs0(i)、ys0(i)为t=iT时刻湿笔笔触区域中的点的原始坐标,xs1(i)、ys1(i)为t=iT时刻湿笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标,xk0(i)、yk0(i)为t=iT时刻枯笔笔触区域中的点的原始坐标,xk1(i)、yk1(i)为t=iT时刻枯笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标,θ(i)为t=iT时刻毛笔笔毫旋转的角度,Fx(i)为t=iT时刻x轴方向上的预处理后手写力信息数值,Fy(i)为t=iT时刻y轴方向上的处理后手写力信息数值,Fz(i)为t=iT时刻z轴方向上的处理后手写力信息数值,i为经历的系统采样周期个数,T为系统采样周期;
[0103] 图7为本发明毛笔笔毫在手写力作用下的运动控制示意图,具体给出了毛笔笔毫在t=iT时刻x轴方向上的预处理后手写力信息数值Fx(i),t=iT时刻y轴方向上的处理后手写力信息数值Fy(i)和t=iT时刻z轴方向上的处理后手写力信息数值Fz(i)作用下产生旋转示意图。
[0104] 根据t=iT时刻x轴方向上的预处理后手写力信息数值Fx(i)和t=iT时刻y轴方向上的处理后手写力信息数值Fy(i)计算t=iT时刻毛笔笔毫旋转的角度θ(i),即:
[0105]
[0106] 根据t=iT时刻湿笔笔触区域中的点的原始坐标xs0(i)、ys0(i),t=iT时刻毛笔笔毫旋转的角度θ(i)和t=iT时刻湿笔笔触区域的缩放系数ss(i)计算t=iT时刻湿笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标xs1(i)、ys1(i),即:
[0107]
[0108] 根据t=iT时刻枯笔笔触区域中的点的原始坐标xk0(i)、yk0(i),t=iT时刻毛笔笔毫旋转的角度θ(i)和t=iT时刻枯笔笔触区域的缩放系数sk(i)计算t=iT时刻枯笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标xk1(i)、yk1(i),即:
[0109]
[0110] 即根据t=iT时刻x轴方向上的预处理后手写力信息数值Fx(i)和t=iT时刻y轴方向上的处理后手写力信息数值Fy(i),通过运算得到t=iT时刻毛笔笔毫旋转的角度θ(i);
[0111] 根据t=iT时刻湿笔笔触区域中的点的原始坐标xs0(i)、ys0(i),t=iT时刻毛笔笔毫旋转的角度θ(i)和t=iT时刻湿笔笔触区域的缩放系数ss(i),通过运算得到t=iT时刻湿笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标xs1(i)、ys1(i);
[0112] 根据t=iT时刻枯笔笔触区域中的点的原始坐标xk0(i)、yk0(i),t=iT时刻毛笔笔毫旋转的角度θ(i)和t=iT时刻枯笔笔触区域的缩放系数sk(i),通过运算得到t=iT时刻枯笔笔触区域中的点的原始坐标经过旋转并缩放后的坐标xk1(i)、yk1(i)。
[0113] 步骤680:前后笔触区域之间利用线性插值完成连线填充;具体的,毛笔书法过程是一个连续的过程,由于不同书写者手写力的不同,其在纸张表面上所形成的毛笔轨迹也不尽相同,特别是书写过程中所形成的笔触区域大小,笔毫旋转角度均因人而异,因此,为了使得绘制的毛笔笔迹能够更好的体现这种自然的交互结果,采用线性插值的方法来完成对前后笔触区域之间连线的绘制,即在前后形成的两个相邻笔触区域之间利用线性插值完成连线填充操作,形成毛笔书法笔迹。
[0114] 步骤690:结束;具体的,表示完成对笔触区域的计算。
[0115] 图8为本发明墨水扩散计算方法的流程图;其步骤具体包括:
[0116] 步骤710:开始,具体的,表示开始对笔触区域的边缘进行墨水扩散计算。
[0117] 步骤720:将笔迹边缘上所有的点加入“扩散队列”中,并为每个点赋上墨水量的值;具体的,在毛笔书法中,毛笔笔毫运动所留下的附在纸张上的墨水在手写力的作用下会发生扩散现象,特别是在笔迹边缘处,墨水扩散的现象更为明显。此外,毛笔笔毫上分配的墨水量会随着书写过程的进行而发生动态变化,即在笔迹边缘处,毛笔笔毫运动所留下的墨水量也是变化的,因此可以用毛笔笔毫上含有的墨水量来衡量毛笔笔毫运动所留下的墨水量。
[0118] 为了能够更好的理解上述步骤,设B(i)表示在t=iT时刻由笔迹边缘点所组成的“扩散队列”集合,n=1…N,N取值在50~80之间,pn(i)表示在t=iT时刻处于笔迹边缘的第n个点,R0表示初始毛笔笔毫中的含墨水量,Rn(i)表示在t=iT时刻和在第n个点上的毛笔笔毫中的含墨水量,vn(i)表示在t=iT时刻和在第n个点上的毛笔笔毫末端的出墨水速度,即:
[0119] B(i)={p0(i),p1(i),p2(i),…,pN(i)}
[0120]
[0121] 即根据在t=iT时刻处于笔迹边缘的第n个点pn(i),初始毛笔笔毫中的含墨水量R0和在t=iT时刻和在第n个点上的毛笔笔毫末端的出墨水速度vn(i),通过运算得到在t=iT时刻由笔迹边缘点所组成的“扩散队列”集合B(i)与在t=iT时刻和在第n个点上的毛笔笔毫中的含墨水量Rn(i)。
[0122] 步骤730:判断“扩散队列”是否为空?如果否,则直接跳到步骤740,取出“扩散队列”第一个元素为当前点F,并为F着色,如果是,则直接跳到步骤770,结束;
[0123] 具体的,在完成对笔迹边缘进行墨水扩散计算后,需要实时判断“扩散队列”内是否边缘点存在,如果有,则表明墨水扩散计算没有完成,如果没有,则表明墨水扩散计算完成。
[0124] 为了能够更好的理解上述步骤,设B(i)表示在t=iT时刻由笔迹边缘点所组成的“扩散队列”集合,pn(i)表示在t=iT时刻处于笔迹边缘的第n个点(n=1…N,N取值在50~80之间),即:
[0125] 当pn(i)∈B(i)且nN时,表明在t=iT时刻“扩散队列”B(i)内已没有边缘点pn(i)存在,即墨水扩散计算完成,从而结束计算。
[0126] 步骤740:取出“扩散队列”第一个元素为当前点F,并为F着色;具体的,设pf(i)表示在t=iT时刻的当前点F,O0表示初始颜色值,Rf(i)表示在t=iT时刻和在当前点F上的毛笔笔毫中的含墨水量,G表示为颜色值权值系数,取值范围在0.5~0.8之间,Of(i)表示在t=iT时刻和在当前点F上颜色值,则当前点F的颜色值可表示为:
[0127] Of(i)=O0+Rf(i)*G
[0128] 即根据初始颜色值O0,在t=iT时刻和在当前点F上的毛笔笔毫中的含墨水量Rf(i)和颜色值权值系数G,通过运算得到在t=iT时刻和在当前点F上颜色值Of(i)。
[0129] 步骤750:F的墨水量大于F的吸墨量?如果是,则跳到步骤760,墨水以F点为中心,进行“十字”扩散计算,如果否,则直接跳到步骤730,判断“扩散队列”是否为空;具体的,在毛笔书法表达中,物理纸张会呈现出吸墨的特性,特别是不同的物理纸张会表现出不同的吸墨量,此外,毛笔笔毫的运动会引起墨水在纸张上扩散,因此当在F点处纸张的吸墨量小于在F点处的墨水量,则会在F点处发生墨水的扩散效应,反之,则不会发生。
[0130] 为了能够更好的理解上述步骤,说明墨水量和吸墨量如何影响墨水扩散,设Rf(i)表示在t=iT时刻和在当前点F处的毛笔笔毫中的含墨水量,Df(i)表示在t=iT时刻和在当前点F处纸张的吸墨量,则有:
[0131] 当Rf(i)>Df(i)时,墨水会在F点处发生扩散效应,而当Rf(i)
[0132] 步骤760:墨水以F点为中心,进行“十字”扩散计算;具体的,以当前点F为扩散中心,墨水在F点处以“十字”形式即向当前点F的上下左右4个邻域点进行扩散并凝聚,同时将这4个点加入“扩散队列”,且每个点的墨水量为所在点的墨水量减去所在点的吸墨量。
[0133] 为了能够更好的理解上述步骤,说明墨水的“十字”扩散运动,设B(i)表示在t=iT时刻由笔迹边缘点所组成的“扩散队列”集合,pf(i)表示在t=iT时刻的当前点F,pf+a(i)表示在t=iT时刻是当前点F的上邻域点,pf+b(i)表示在t=iT时刻是当前点F的下邻域点,pf+c(i)表示在t=iT时刻是当前点F的左邻域点,pf+d(i)表示在t=iT时刻是当前点F的右邻域点,Rf+a(i)表示在t=iT时刻和在pf+a(i)处的毛笔笔毫中的含墨水量,Rf+b(i)表示在t=iT时刻和在pf+b(i)处的毛笔笔毫中的含墨水量,Rf+c(i)表示在t=iT时刻和在pf+c(i)处的毛笔笔毫中的含墨水量,Rf+d(i)表示在t=iT时刻和在pf+d(i)处的毛笔笔毫中的含墨水量,Df+a(i)表示在t=iT时刻和在pf+a(i)处的纸张的吸墨量,Df+b(i)表示在t=iT时刻和在pf+b(i)处的纸张的吸墨量,Df+c(i)表示在t=iT时刻和在pf+c(i)处的纸张的吸墨量,Df+d(i)表示在t=iT时刻和在pf+d(i)处的纸张的吸墨量,Lf+a(i)表示在t=iT时刻和在pf+a(i)处经过扩散后留有的墨水量,Lf+b(i)表示在t=iT时刻和在pf+b(i)处经过扩散后留有的墨水量,Lf+c(i)表示在t=iT时刻和在pf+c(i)处经过扩散后留有的墨水量,Lf+d(i)表示在t=iT时刻和在pf+d(i)处经过扩散后留有的墨水量,则有:
[0134] 以pf(i)为扩散中心,向pf+a(i),pf+b(i),pf+c(i)和pf+d(i)扩散并凝聚,然后将pf+a(i),pf+b(i),pf+c(i)和pf+d(i)加入到“扩散队列”集合B(i)中,相应的这4个点的墨水量分别为:
[0135] Lf+a(i)=Rf+a(i)-Df+a(i)
[0136] Lf+b(i)=Rf+b(i)-Df+b(i)
[0137] Lf+c(i)=Rf+c(i)-Df+c(i)
[0138] Lf+d(i)=Rf+d(i)-Df+d(i)
[0139] 即根据在t=iT时刻和在pf+a(i)处的毛笔笔毫中的含墨水量Rf+a(i)、在t=iT时刻和在pf+b(i)处的毛笔笔毫中的含墨水量Rf+b(i)、在t=iT时刻和在pf+c(i)处的毛笔笔毫中的含墨水量Rf+c(i)、在t=iT时刻和在pf+d(i)处的毛笔笔毫中的含墨水量Rf+d(i)、在t=iT时刻和在pf+a(i)处的纸张的吸墨量Df+a(i)、在t=iT时刻和在pf+b(i)处的纸张的吸墨量Df+b(i)、在t=iT时刻和在pf+c(i)处的纸张的吸墨量Df+c(i)与在t=iT时刻和在pf+d(i)处的纸张的吸墨量Df+d(i),通过运算得到在t=iT时刻和在pf+a(i)处经过扩散后留有的墨水量Lf+a(i)、在t=iT时刻和在pf+b(i)处经过扩散后留有的墨水量Lf+b(i)、在t=iT时刻和在pf+c(i)处经过扩散后留有的墨水量Lf+c(i)与在t=iT时刻和在pf+d(i)处经过扩散后留有的墨水量Lf+d(i)。
[0140] 步骤770:结束,具体的,表示完成对笔触区域边缘的墨水扩散计算。
[0141] 实施例
[0142] 图9为本发明毛笔书法实施例表达示意图;其中:
[0143] 图9中a为本发明湿笔毛笔书法实施例表达示意图,为书写者书写“凌云之志”,经过本发明方法处理后所形成湿笔毛笔书法表达效果;
[0144] 图9中b为本发明枯笔毛笔书法实施例表达示意图,为书写者书写“马到成功”,经过本发明方法处理后所形成枯笔毛笔书法表达效果。