CN100346355C - 基于压感笔等装置的三维毛笔模型与仿真方法 - Google Patents

基于压感笔等装置的三维毛笔模型与仿真方法 Download PDF

Info

Publication number
CN100346355C
CN100346355C CNB2005101151832A CN200510115183A CN100346355C CN 100346355 C CN100346355 C CN 100346355C CN B2005101151832 A CNB2005101151832 A CN B2005101151832A CN 200510115183 A CN200510115183 A CN 200510115183A CN 100346355 C CN100346355 C CN 100346355C
Authority
CN
China
Prior art keywords
curve
brush
centerdot
spine
bifurcated
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.)
Expired - Fee Related
Application number
CNB2005101151832A
Other languages
English (en)
Other versions
CN1870052A (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.)
Tianjin University
Original Assignee
Tianjin University
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 Tianjin University filed Critical Tianjin University
Priority to CNB2005101151832A priority Critical patent/CN100346355C/zh
Publication of CN1870052A publication Critical patent/CN1870052A/zh
Application granted granted Critical
Publication of CN100346355C publication Critical patent/CN100346355C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

基于压感笔等装置的三维毛笔模型与仿真方法。属于计算机模拟仿真技术领域。包括笔刷模型和动态控制模块与分叉控制模块组成。笔刷模型有骨架(由脊骨和辅助面组成)和表面两部分。动态控制模块:综合分析从输入装置实时获得的方位信息,求解虚拟毛笔的形变控制曲线,从而调整毛笔几何模型以改变其形态。分叉模块:依据输入的信息,判断是否应产生分叉,计算产生分叉的位置,和分叉部分与主体部分之间的初始间隔,最后将对分叉部分的控制传递给动态控制模块。本发明保证了动态控制的实时性,既能逼真地模拟毛笔的外部形态和动态变化,又能满足实时性要求。该仿真技术可以融合到各种绘图软件中,提供毛笔落在纸面上的笔迹,最终绘制出具有水墨效果的笔道。

Description

基于压感笔等装置的三维毛笔模型与仿真方法
【技术领域】:本发明涉及一种计算机模拟仿真技术,特别是模拟3维毛笔的仿真方法,通过综合运用三维建模及动画等计算机图形学技术,以压力感应笔和数位板,以及计算机键盘、鼠标作为主要输入装置,对虚拟毛笔模型进行动态控制,在计算机屏幕上模拟出真实毛笔的各种运动变形。
【背景技术】:随着计算机图形学技术的飞速发展,中国水墨画和书法等东方艺术的计算机仿真在非真实感渲染领域异军突起,日趋成为众人关注的研究焦点。传统水墨画和书法并不容易上手。而电脑作画不仅避免了上述问题还可以撤消不满意的笔触,保存创作一半的作品,以便下次继续完成,或是以其为基础,创作出几张风格各异的作品。这些功能都使创作更加有效、方便。毛笔,列为“文房四宝”之首,中国水墨画和书法正是依靠了毛笔运动的灵活多变和水墨的丰富性,在纸面上形成有艺术意味的黑白构成。因此,在东方艺术的计算机仿真中,对毛笔进行仿真模拟是至关重要的,在工艺包装设计、广告设计、形象识别设计、书籍装帧集文字设计以及影视制作甚至古代珍贵水墨画的保护性修复研究和临摹复制等方面有较高的实际应用价值。
目前已经存在很多对硬笔的仿真方法。因为硬笔没有复杂的形态变化,所以更容易被计算机模拟。但是仿真3维毛笔的技术还很少,其中一种技术是利用能量最小化方法对毛笔的动态变化行为建模,但这种方法无法模拟程度较大的笔刷形变,而且不够稳定;另一种技术建立了单根笔毛的模型,将多根笔毛聚合成笔刷,并且利用设置毛笔运动参数和添加惯性量的方法进行仿真,但这种方法模拟出的毛笔外形不美观,且运算量会随笔毛数量的增加而成倍增长,不能保证产生实时的仿真效果。
【发明内容】:本发明的目的是解决现有毛笔仿真技术较少和已有技术存在计算速度慢、模拟的变化种类少,交互性差,以及不易上手等问题,提供一种基于压感笔等装置的三维毛笔模型与仿真方法,通过建立三维虚拟毛笔模型,使用户结合数位板与压感笔,或者计算机键盘和鼠标等装置实现对虚拟模型连续有效的动态控制,从而模拟出真实毛笔的各种运动及变形并在计算机屏幕上直观的显示出来,用户可以在计算机上自然、直观地操控一支三维虚拟毛笔进行艺术创作。
本发明提供的基于压力感应笔和数位板的三维毛笔模型主要指笔刷几何模型,包括骨架和表面两个部分,骨架由脊骨和辅助面组成,脊骨又细分为主脊骨和分叉脊骨,主脊骨位于骨架的中轴线上,表现弯曲、扭转重要形变,分叉脊骨与主脊骨的结构相同,表现笔尖分叉行为;在脊骨上分布有n个节点——模型中称之为关键节点,相邻关键节点间的距离是一个等差数列,公差d=l·λ/(n2-n),其中l是笔刷长度,λ是调整因子;辅助面即以这些关键节点为中心,表现毛笔承受压力时的外表面挤压形变,辅助面与中轴线垂直,辅助面上有m/2条过其中心的轴线,相邻轴线夹角相等,这些轴线的端点在模型中称为辅助节点,即几何模型有m个辅助节点;笔刷模型用抛物线模拟辅助面初始半径的变化,某一辅助面的初始半径r=a·s2+b·s+c,其中s是该辅助面中心的关键节点与根部关键节点之间的长度,抛物线系数a,b,c由三点确定,分别是根部辅助面,半径最大处的辅助面,和笔尖处辅助面在脊骨同一侧,且位于同一平面内的辅助节点的坐标值;模型骨架上添加表面,完成笔刷几何模型建立并显示。
一种基于上述三维毛笔模型的毛笔仿真方法,该仿真方法由动态控制模块与分叉控制模块对三维毛笔模型进行实时检测控制,整体的控制流程如图4所示,其中:
第一、动态控制模块
形变控制曲线——空间形变的确定
根据数位板和压力感应笔检测到的参数:压感笔笔头的水平面x、z坐标,压力大小p,笔杆与水平面XZ的夹角α及笔杆在纸平面亦即水平面的投影与Z轴夹角β,唯一确定毛笔当前的空间位置。模块可将p通过公式y=(1-p/1024)*l(1-系统设定的脊骨长度)转换为y坐标,然后将(x,y,z)作为笔刷根部关键节点(即笔刷与笔杆连接处)的空间位置;
动态控制模块综合分析从输入装置实时获得的方位信息,确定毛笔新的方位和形变。它的基本思想是:求解虚拟毛笔的形变控制曲线,从而调整毛笔几何模型以改变其形态。两组势能-阈值对控制弹性变化到塑性变化的转变,以及约束毛笔弯曲和扭转的最大程度。
从图5可以看出,模块首先将毛笔的笔刷投影到竖直面和水平面上,分别求解笔刷在这两个平面上的形变控制曲线,依据几何约束建立控制曲线的方程组:
●笔刷的长度是固定的,即控制曲线的曲线段长度恒定
●通过数位板传入的参数,可以确定笔刷上一点的位置,即控制曲线必过该点
●通过数位板传入的参数,可以确定毛笔的倾斜角度α,即控制曲线的一端点(作为笔刷根部的关键节点)处的导数可确定。
●笔尖落在纸面上,即控制曲线的另一端点(作为笔刷尖部的关键节点)的Y坐标与纸面相等。
即在竖直面内,几何约束可以抽象表示为:
●抛物线过P0
●抛物线过P1
●抛物线上过P1点的切线与X轴正向的夹角等于α
●抛物线在P0点与P1点间的弧长等于s
可列求控制曲线待定系数方程组如下:
x 0 = a v · y 0 2 + b v · y 0 + c v x 1 = a v · y 1 2 + b v · y 1 + c v x ′ | y = y 1 = 2 a v · y + b v ∫ y 0 y 1 ds = s ⇒ x 0 = a v · y 0 2 + b v · y 0 + c v x 1 = a v · y 1 2 + b v · y 1 + c v tan ( π / 2 - a ) = 2 a v · y + b v ∫ y 0 y 1 1 + ( 2 a v · y + b v ) 2 dy = s
x0,y0-P0点坐标
x1,y1-P1点坐标
α-过P1点的切线与X轴正向的夹角
s-P0点到P1点的曲线弧长
Figure C20051011518300112
av,bv,cv-抛物线线方程的待定系数
在水平面内,几何约束可以抽象表示为:
●抛物线过P0′点
●抛物线过P1′点
●抛物线上过P1′点的切线与X轴正向的夹角等于α′
●抛物线在P0′点与P1′点间的弧长等于s
对于水平面,可列求控制曲线待定系数程组如下:
tan α ′ = 2 a h · x 1 + b h z 1 = a h · x 1 2 + b h · x 1 + c h z 0 = a h · ( x 0 ′ ) 2 + b h · x 0 ′ + c h ∫ x 0 ′ x 1 ds = s p tan α ′ = 2 a h · x 1 + b h 0 = a h · x 1 2 + b h · x 1 + c h z 0 = a h · ( x 0 ′ ) 2 + b h · x 0 ′ + c h ∫ x 0 ′ x 1 1 + ( 2 a h · x + b h ) 2 dx = s p
x0′,z0-P0′点坐标
x1,z1-P1′点坐标
α′-过P1′点的切线与X轴正向的夹角
sp-P0′点到P1′点的曲线弧长
Figure C20051011518300122
ah,bh,ch-抛物线线方程的待定系数
模型对于z0的确定基于如下理论,因为脊骨的初始投影是一条与X轴重合的线段,z0是扭转后脊骨投影尖部点在Z轴上的偏移值,若状态参数x,z,β都有改变,模型依据如下步骤求z0
a)状态参数β不变,x,z改变
可以用投影根部点到的前一时刻的脊骨投影过当时投影根部点的切线的距离来表示。
过前一时刻的投影根部点(x1′,z1′),且与Z轴正向的夹角等于当时的状态参数β′的切线的直线方程是: x - x 1 ′ z - z 1 ′ = tan β ′ ⇒ tan β ′ · z - x + ( x 1 ′ - tan β ′ · z 1 ′ ) = 0 , 设A=tanβ′,B=-1,C=x1′-tanβ′·z1′,则当前时刻投影根部点P1′(x1,z1)到直线的距离dz0为:
b)状态参数β改变
dz0=dz0-sp·sincurrprev)
其中
Figure C20051011518300132
c)为了保证扭转变化的稳定性和连续性,模型确定z0的值是一个积累变化的动态过程,即:z0=z0+dz0
使用迭代求根法可以解出上述两个求解曲线待定系数的方程组,从而得到竖直面和水平面内的两条形变控制曲线,解出控制曲线后,通过它们求解各个关键节点在竖直面和水平面内的坐标,并将这两组坐标加以组合,就可以将两条控制曲线合成为笔刷的空间形变,其步骤为:
a)竖直面(XOY面)内得到的曲线方程:x=av·y2+bv·y+cv
b)水平面(XOZ面)内得到的曲线方程:z=ah·x2+bh·x+ch
c)对于每一个关键节点P,设竖直面内该点到曲线段端点的弧长为ps,它在水平面上的对应长度psp,二者之间的关系近似为:
ps ps p = s s p ⇒ ps p = ps s · s p
Figure C20051011518300134
d)设P点待定3维坐标为(x,y,z),在两个平面内的对应点的平面坐标分别为:竖直面内Pv(xv,yv),水平面内Ph(xh,yh),这两组坐标分别由以下两个方程组求得:
x v = a v · y v 2 + b v · y v + c v ∫ y v y 1 ds = ps ⇒ ( x v , y v )
z h = a h · x h 2 + b h · x h + c h ∫ x h x 1 ds = ps p ⇒ ( x h , z h )
这里是将关节节点的待求平面坐标分别代入竖直面和水平面内的两条形变控制曲线,所以方程组中的av,bv,cv以及ah,bh,ch是形变控制曲线的系数。
e)(xh,yv,zh)即为关键节点P的3维坐标值;
势能-阈值对——弯曲恢复程度、扭转程度的确定:
模块对它们采用近似计算方式:分别过控制曲线的两端点作该曲线的切线,这两条切线的夹角与调整因子的乘积即是当前时刻的势能。而阈值是由经验公式确定的。
势能-阈值对在竖直面和水平面内的计算方法和比较过程是:
设k-势能调整系数,rid-硬度,wet-湿度,p-压力
在竖直面内:势能Ev=k·(Δθv)2,阈值 T v = δ v · rid p · wet , 其中
Figure C20051011518300142
若Ev≤Tv则弯曲可以完全恢复;若Ev>Tv则弯曲部分恢复后有残余形变,残余势能ΔE=Ev-Tv,脊骨仅能恢复到Ev=ΔE时的状态。
在水平面内:势能Eh=k·(Δθh)2,阈值Th=δh·p·wet·μ,其中,
若Eh≤Th则笔尖点未能摆脱摩擦力束缚,位置不变,扭转程度增大;若Eh>Th则恢复到Eh=Th,扭转程度达到最大。
笔刷受压形变——骨架中的一个辅助面即是笔刷的一个横截面,辅助面初始时类似于圆面,当笔刷与纸面接触并且受到下压力时,随着压力或者笔杆与纸面夹角的增大,它的各轴长度在垂直方向上减小,在水平方向上增大,从而变化为一个类椭圆面,但面积大小不变,依据辅助面面积守恒原理,首先找到一个到弯曲脊骨曲率最大处的距离最小的关键节点,确定以该节点为中心的辅助面的受挤压形变程度(即变为椭圆面后,椭圆面的长短轴大小),然后在该处形变的基础上求解一条表面形变控制曲线,该曲线确定其它辅助面的受挤压形变程度,所有的这些变化的集合就可以反映出笔刷的表面形变,步骤如下:
a)对一个特定时刻的弯曲脊骨确定其曲率最大处的关键节点——即检查以关键节点为中心的辅助面上是否有低于纸面的辅助节点,从脊骨根部点起向尖部点依次遍历,第一个满足这种情况的关键节点即作为曲率最大处的关键节点;
b)计算以此关键节点为中心的辅助面的最短轴(即辅助面变形为椭圆面后,该椭圆面的短轴)距离——最短轴距离由该辅助面初始半径R与挤压比率f的乘积确定,即Rmin=R×f,
挤压比率f与压力成正比,与脊骨长度成反比,与笔杆与纸面夹角成正比,公式为:
                       λ-调整因子(默认为0.24)
                       a-笔杆与纸面夹角
f=1-λ·ap/l,其中
                       l-笔刷长度
                       p-压力
c)由脊骨尖部辅助面,最大曲率处辅助面和脊骨根部辅助面上的最长轴(即辅助面变形为椭圆面后,该椭圆面的长轴)在脊骨同一侧的辅助节点,确定一条水平面曲线方程:z=ax2+bx+c;之所以只求水平面的控制曲线,是因为各辅助面上最长轴的端点与辅助面的中心同高,即其辅助节点的y值与对应脊骨上的关键节点相等,所以在竖直面上可以保证轮廓线的平滑,我们只需关心轮廓线在水平面上投影的平滑即可,既然最大曲率处辅助面已通过挤压程度控制公式进行了调整,那么这条根据已调整的辅助面上的节点得到的曲线就可以用来调整其它辅助面;例如:三个辅助面的最长轴在脊骨同一侧的端点依次为P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3),三点在水平面的投影可以确定这样一条用于控制其它未调整辅助面的最长轴长度的抛物线:
z 1 = ax 1 2 + bx 1 + c z 2 = ax 2 2 + bx 2 + c z 3 = ax 3 2 + bx 3 + c ⇒ a , b , c
d)各辅助面最长轴所在直线的水平面投影与控制曲线有一个交点,该点到中心在水平面上的投影的距离即是其新的最长轴半径Rmax;依据面积守恒原理,受挤压时椭圆面的面积等于初始时圆面的面积,受挤压辅助面的椭圆的最短轴半径Rmin=R2/Rmax
e)根据新的最短轴半径调整各个辅助节点的3维空间坐标;
第二、分叉控制模块
依据输入的信息,判断是否应产生分叉,计算脊骨上开始产生分叉的关键节点位置,和分叉部分与主体部分之间的初始间隔,最后将对分叉部分的控制传递给动态控制模块;
当毛笔承受的压力、倾斜角度和湿度的综合值c=λ*p*α/w(c-综合值、λ-调整因子、p-当前压力值、α-毛笔与XOZ面夹角、w-笔刷湿度)超过模块设定限定值t后,即产生分叉,这里的限定值t是系统的预设值,通过实验确定,只有当c>t时才会出现分叉效果。同时调整因子变为其原值的q倍(0<q<1可由用户设定),以保证只有当压力再次超过某一定值后才会产生新的分叉,而不是陷入不断分叉的死循环中;
开始产生分叉的关键节点由公式 (n-关键节点数,t-分叉限定值)确定;
分叉脊骨与主脊骨的初始间隔大小与毛笔所受压力,以及持笔角度成比例关系,但在这一范围内又具有一定的随机性,公式为initGap=σ*p*α(initGap-初始分叉间隔;σ-随机因子,可由各种编程语言内含的随机数生成函数生成);
分叉模型在对分叉脊骨结构的各部分设定初始值时依据以下几点:
●各条脊骨在分叉起始点处的辅助面是完全重合的,分叉脊骨的辅助面初始值应与主脊骨的对应面相同,这样才能添加表面以后,产生一个顺滑的外观,因为分叉后的笔刷的两条边线仍然是曲线,否则分叉出的脊骨会很像突刺出笔刷轮廓面一样。
●分叉脊骨在XOY平面控制曲线的各系数由主脊骨传递,这既是与实际情况相符的,也考虑到了给骨架添加外表面时的需要,因为分叉脊骨和主脊骨在竖直面的弯曲从与XOY面垂直的方向看去应是基本重合的,分叉后的笔刷在运动变化时依然是一个整体,具有很大程度的一致性。
分叉脊骨与主脊骨之间的偏移量主要体现在每一时刻变化开始时二者的尖端点在Z轴向的距离,这是一个动态变化的值,设定其公式为:
       Gap=λ*p*α+initG其中:
       Gap-分叉脊骨与主脊骨偏移量
       λ-调整因子
       p-毛笔所受下压力
       α-笔杆与纸面夹角
       w-笔刷当前湿度
       initGap-初始偏移量
分叉控制模块在初始化分叉脊骨后,把对分叉脊骨运动变化的控制交给动态控制模块,动态控制模块把主脊骨在竖直面和水平面上控制曲线的参数传递给分叉脊骨,分叉脊骨根据这些参数:
●从主脊骨复制得到它自身在竖直面上的控制曲线,
●分叉脊骨尖部点的z0坐标由主脊骨尖部点的z0坐标加上偏移量得到,由此确定它在水平面上的控制曲线;
以上计算结束后,动态控制模块对分叉脊骨的控制就与主脊骨相同了;
上述过程反复进行,即可对虚拟毛笔模型进行动态控制,在计算机屏幕上模拟出真实毛笔的运动变形并最终显示毛笔的笔迹。
本发明的优点和积极效果:1、毛笔模型的外形美观和逼真,本发明提出的毛笔笔刷几何模型对真实毛笔进行了适当的抽象和简化,生成了一个与真实毛笔非常接近的三维虚拟毛笔,该虚拟毛笔具有顺滑的外观,而且具有很高的灵活性,能够产生丰富的形变。2、更好的交互性,由于本发明构建了一个基于压感笔等装置的三维交互界面,用户在创作时动态控制屏幕上的3D虚拟毛笔,可以更加自然和直观地进行艺术创作。3、毛笔模型更容易使用,友好的交互界面使得用户能够在较短的时间内掌握使用方法,熟练地绘制和书写。4、绘制效果更逼真,由于绘制出的笔迹是依据3D虚拟毛笔的形变实时产生的,可以产生变化更加丰富,更接近真实的笔道效果。5、更高的实时性,本发明中,模型采用的算法在保证效果逼真的前提下,进行了很多优化,降低了计算量,使得该仿真方法与同类技术相比更加实用。本发明保证了动态控制的实时性,即从发生用户输入到3D毛笔产生相应的正确变化之间的时间间隔在一个用户可接受的范围内,并在毛笔模型的复杂性和实时性之间找到一个平衡点,既能逼真地模拟毛笔的外部形态和动态变化,又能满足实时性要求。6、该仿真技术可以融合到各种绘图软件中,为中国画、书法的创作提供更加直观的交互界面,而且可以作为水墨仿真的基础,提供毛笔落在纸面上的笔迹,最终绘制出具有水墨效果的笔道。
【附图说明】:
图1是压感笔坐标系及角度检测示意图;
图2是笔刷模型中骨架示意图;
图3是笔刷模型表面示意图;
图4是仿真方法控制流程图;
图5是控制曲线的求解与合成过程示意图;
图6是垂直于纸面方向观察到的分叉后的骨架示意图;
图7是压笔与提笔过程示意图;
图8是运笔过程示意图;
图9是笔刷受挤压后的形变过程示意图;
图10是分叉控制模块处理后的3D虚拟毛笔的笔刷示意图;
图11是分叉笔刷的运笔过程示意图;
图12是绘制出的具有水墨效果的笔道示意图。
【具体实施方式】:
实施例1:
下面通过一个实例来说明本发明的工作方式:
本发明采用的输入装置是Intuos2数位板和压力感应笔,整体的控制流程如图4所示。
假设用户选择了系统提供的一支软豪毛笔,该笔各项参数值如下:笔刷长度l=10.0,关键节点数n=20,辅助节点数m=8,根部辅助面半径Rroot=1.3,辅助面最大半径Rmax=1.5,笔毛硬度rid=0.2,和笔刷湿度wet=0.4,纸面与XOZ面重合,即纸面高度为0.0。该组参数值生成如图2所示的骨架,添加表面后形成如图3所示的笔刷,其中:1脊骨,2关键节点,3辅助节点,4辅助面,5表面。
参见图1,用户开始绘制后,假设在某一时刻,系统从压感笔装置获得的毛笔信息为x=5.0,z=1.0,压力p=535,转换为y=(1-p/1024)*l=4.8。系统设定该组坐标对为笔刷根部关键节点的空间位置,在其后的计算中令p=y=4.8并代入公式。此外获得的信息还有,笔刷与纸面(XOZ面)的夹角α=56°,笔刷在XOZ面的投影与Z轴夹角β=45°。同时,系统还保留有前一采样时刻的毛笔信息,假设其为x’=4.8,y=5.4,z=0.01,α=56°,β=40°。
系统依据该组信息求笔刷的竖直面控制曲线:
x 0 = c 5.0 = 4.8 2 a + 4.8 b + c tan ( π / 2 - 56 π / 180 ) = 9.6 a + b ∫ 0.0 4.8 1 + ( 9.6 a + b ) 2 dy = 10.0 ⇒ a = - 0.233732 b = 2.91833 c = - 3.62282 x 0 = - 3.62177
由此可以得到竖直面内的控制曲线x=-0.233732y2+2.91833y-3.62282,并且可以确定当前情况下的笔尖点的竖直面坐标(-3.62177,0.0)。
求笔刷的水平面控制曲线:
先保持状态参数β不变
dz 0 = - A · z 1 + B · x 1 + C A 2 + B 2 = 0.84 * 0.01 - 1 * 5.0 + 4.128 0.8 4 2 + 1 = 0.661
再考虑状态参数β改变带来的影响
dz0=dz0-sp·sin(βcurrprev)=0.661-8.62282*sin(45°-40°)=-0.09
z0=1.0-0.09=0.01,这里的1.0是假设笔刷从运动起始时刻起到当前时刻积累下的Z轴方向偏移量,该偏移量初始为0。解方程组
0 = 10 a + b 0 = 25 s + 5 b + c 0.01 = a · ( x 0 ′ ) 2 + b · x 0 ′ + c ∫ x 0 ′ 5.0 1 + ( 10.0 a + b ) 2 dx = x 0 - x = 8.62282 ⇒ a = 0.000134493 b = - 0.00134493 c = 0.00336233 x 0 ′ = - 3.62280
由此可以得到水平面内的控制曲线z=0.000134493y2-0.00134493y-3.62280,并且可以确定当前情况下的笔尖点的水平面坐标(-3.62280,0.00999993)。
系统在求解方程组时使用的割线迭代法是一种较常用的求根算法,可以在很多有关数值方法的著述中查到相关资料。
接下来由这两条控制曲线合成各个关键节点的空间位置,参见图5。其中:6合成空间形变,7添加表面。笔尖处关键节点序号为n-1,向根部关键节点处递减,直到根部关键点的序号0。其间的任一关键节点i,在它到笔尖点间的脊骨长为 ps = Σ i n - 1 ( n - 1 - i ) * min us , ps p = ps s . s p = 8.6228 2 * ps / 10.0 , 由此分别列出类似于求竖直面和水平面控制曲线的方程组,只是a,b,c成为已知数,而x1,y1和x1’,z1’变为未知数,可以分别求出该点在竖直面和水平面的平面坐标(x,y)(x’,z’)。合成两对平面坐标,将(x’,y,z’)作为第i个关键节点的空间坐标。
前一时刻的竖直面和水平面内的势能-阈值对可依据当时的控制曲线按技术方案提供的公式求得,通过比较可知,当前的弹性弯曲可以完全恢复,扭转程度仍未超过当前状态下允许的最大值。参见图7,笔刷在提笔、压笔的过程中会弹性的弯曲并恢复,其中:12笔刷原始状态,13倾斜毛笔,14压笔,15提笔;另外参见图8,其中8(a)是一个水平横向运笔过程,8(b)是一个水平测向运笔过程,其间的扭转程度的最大值由水平面势能-阈值对确定的。
然后系统对笔刷表面受挤压时的形变进行控制,参见图9,在压笔过程中,笔刷会因为受挤压而变形。
在本例所举的时刻,因为只有笔尖点处辅助面落在纸面上,其它辅助面没有与纸面相交,表明弯曲程度还很小,所以表面基本没有变化。
假设另一时刻序号为9的关键节点是序号值最小,且以其为中心的辅助面与纸面相交的关键节点,则首先求得该点处辅助面的压缩率,f=1-λ·ap/l=1.0-0.8*((0.3*3.0/10.0)*0.98)=93%,即辅助面的最短轴半径变为初始半径的0.93倍。基于该最短半径,系统就可以求出新的外形控制曲线,并调整表面的形变。
回到本例,压力、倾角、湿度综合值c=λ*p*α/w=1*4.8*56*π/(180*0.4)=11.7286,低于系统设定的该种毛笔分叉限定值t=8.0,会产生程度较轻的分叉,λ更新为原值的p=0.5倍,即λ=0.5。分叉起始关键节点序号为
Figure C20051011518300203
是从笔尖处关键节点算起的第四个节点。初始分叉间隔initGap=σ*c=0.00285*11.7286=0.03343。由此产生第一条分叉脊骨,并将该脊骨的控制转移给了动态控制模块。这里的限定值t可以由用户重新设定,以满足不同的需要。参见图6、图10、图11。其中:8分叉偏移量,9分叉脊骨,10主脊骨,11产生分叉的节点位置。
除了该种软豪毛笔外,系统还提供了其它种类的预设毛笔可供用户使用。用户也可以通过在系统允许的范围内设定特定参数的数值,如硬度、湿度等,来取得符合自身要求的毛笔。
本发明有以下几种有效的实施方式。
1.将各个时刻毛笔的形变连续叠加并显示在屏幕上,可以实时绘制出各种水墨效果的笔道,用来进行中国画和书法的创作。以压感笔和数位板作为输入装置,用户操纵压感笔的方式不同,可以实时绘制出不同的笔锋。这里以毛笔最基本的两种笔法——中锋和侧锋为例,说明操作过程:
中锋——毛笔的技法中有一种最基本的中锋笔法,中锋亦是藏锋,执笔端正,笔锋在墨线的中间,用笔的力量均匀,笔锋垂直于纸面,其效果圆浑稳重。相对于其它运笔方法来说,中锋笔法更易被初学者掌握。如图12(a)中所示,用户按下压感笔,然后基本顺着此时压感笔的倾斜方向运笔,反映在屏幕上,即是笔尖在笔迹正中的中锋笔法。结合用笔的力度、速度、走势又可将中锋用笔演化成拖锋和逆锋。
侧锋——侧锋是指用笔执笔偏侧,笔锋在墨线的边缘,笔锋与纸面形成一定的角度,用力不均匀,时快、时慢、时轻、时重,其效果毛、涩变化丰富。如图12(b)中所示,用户按下压感笔后,向笔杆一侧的方向运笔,反映在屏幕上,即是笔尖在笔迹一侧的侧锋笔法。
中锋和侧锋是中国画和书法的最基本的两种笔法,结合用笔力度、向度、速度等的变化,可演化为其它几种笔法。用户熟练使用后,完全可以使用压感笔模拟出毛笔的勾、擦、点、染,以及飞白等表现手法
2.本发明可以融合到其它绘图软件中。用户控制屏幕中的三维虚拟毛笔进行绘制,比单纯观察鼠标指针的移动更加直观、自然,上手容易。
3.由于很多西画种类如油画、水彩画等使用的也是软性笔刷,本发明只要经过少量修改,就可以直接被用来仿真这些在西画中使用的笔刷。

Claims (1)

1、一种基于压力感应笔和数位板的三维毛笔模型与仿真方法,其特征是该仿真方法包括:1个笔刷几何模型和2个控制模块,即动态控制模块与分叉控制模块组成,其中:
第一、笔刷几何模型:包括骨架和表面两个部分,骨架由脊骨和辅助面组成,脊骨又细分为主脊骨和分叉脊骨,主脊骨位于骨架的中轴线上,表现弯曲、扭转重要形变,分叉脊骨与主脊骨的结构相同,表现笔尖分叉行为;在脊骨上分布有n个节点——模型中称之为关键节点,相邻关键节点间的距离是一个等差数列,公差d=l·λ/(n2-n),其中l是笔刷长度,λ是调整因子;辅助面即以这些关键节点为中心,表现毛笔承受压力时的外表面挤压形变,辅助面与中轴线垂直,辅助面上有m/2条过其中心的轴线,相邻轴线夹角相等,这些轴线的端点在模型中称为辅助节点,即几何模型有m个辅助节点;笔刷模型用抛物线模拟辅助面初始半径的变化,某一辅助面的初始半径r=a·s2+b·s+c,其中s是该辅助面中心的关键节点与根部关键节点之间的长度,抛物线系数a,b,c由三点确定,分别是根部辅助面,半径最大处的辅助面,和笔尖处辅助面在脊骨同一侧,且位于同一平面内的辅助节点的坐标值;模型骨架上添加表面,完成笔刷几何模型建立并显示;
第二、动态控制模块:
形变控制曲线——空间形变的确定
根据数位板和压力感应笔检测到的参数:压感笔笔头的水平面x、z坐标,压力大小p,笔杆与水平面XZ的夹角α及笔杆在纸平面亦即水平面的投影与Z轴夹角β,唯一确定毛笔当前的空间位置;模块可将p通过公式y=(1-p/1024)*l转换为y坐标,其中l是系统设定的脊骨长度,然后将(x,y,z)作为笔刷根部关键节点,即笔刷与笔杆连接处的空间位置;
在竖直面内,几何约束可以抽象表示为:
●抛物线过P0
●抛物线过P1
●抛物线上过P1点的切线与X轴正向的夹角等于α
●抛物线在P0点与P1点间的弧长等于sp
可列求控制曲线待定系数方程组如下:
x 0 = a v · y 0 2 + b v · y 0 + c v x 1 = a v · y 1 2 + b v · y 1 + c v x ′ | y = y 1 = 2 a v · y + b v ∫ y 0 y 1 ds = s ⇒ x 0 = a v · y 0 2 + b v · y 0 + c v x 1 = a v · y 1 2 + b v · y 1 + c v tan ( π / 2 - α ) = 2 a v · y + b v ∫ y 0 y 1 1 + ( 2 a v · y + b v ) 2 dy = s
x0,y0-P0点坐标
x1,y1-P1点坐标
α-过P1点的切线与X轴正向的夹角
s-P0点到P1点的曲线弧长
Figure C2005101151830003C2
av,bv,cv-抛物线线方程的待定系数
在水平面内,几何约束可以抽象表示为:
●抛物线过P0′点
●抛物线过P1′点
●抛物线上过P1′点的切线与X轴正向的夹角等于α′
●抛物线在P0′点与P1′点间的弧长等于sp
对于水平面,可列求控制曲线待定系数程组如下:
tan α ′ = 2 a h · x 1 + b h z 1 = a h · x 1 2 + b h · x 1 + c h z 0 = a h · ( x 0 ′ ) 2 + b h · x 0 ′ + c h ∫ x 0 ′ x 1 ds = s p ⇒ tan α ′ = 2 a h · x 1 + b h 0 = a h · x 1 2 + b h · x 1 + c h z 0 = a h · ( x 0 ′ ) 2 + b h · x 0 ′ + c h ∫ x 0 ′ x 1 1 + ( 2 a h · x + b h ) 2 dx = s p
x0′,z0-P0′点坐标
x1,z1-P1′点坐标
α′-过P1′点的切线与X轴正向的夹角
sp-P0′点到P1′点的曲线弧长
Figure C2005101151830004C2
ah,bh,ch-抛物线线方程的待定系数
使用迭代求根法可以解出上述两个求解曲线待定系数的方程组,从而得到竖直面和水平面内的两条形变控制曲线,解出控制曲线后,通过它们求解各个关键节点在竖直面和水平面内的坐标,并将这两组坐标加以组合,就可以将两条控制曲线合成为笔刷的空间形变,其步骤为:
a)竖直面,即XOY面内得到的曲线方程:x=av·y2+bv·y+cv
b)水平面,即XOZ面内得到的曲线方程:z=ah·x2+bh·x+ch
c)对于每一个关键节点P,设竖直面内该点到曲线段端点的弧长为ps,它在水平面上的对应长度psp,二者之间的关系近似为:
ps ps p = s s p ⇒ ps p = ps s · s p
s-竖直面曲线段弧长,sp-水平面曲线段弧长,
ps-竖直面某关键点到曲线段端点的弧长,曲线段端点是脊骨根部点,
psp-水平面某关键点投影到曲线段端点的弧长,曲线段端点是脊骨投影根部点,
d)设P点待定3维坐标为(x,y,z),在两个平面内的对应点的平面坐标分别为:竖直面内Pv(xv,yv),水平面内Ph(xh,yh),这两组坐标分别由以下两个方程组求得:
x v = a v · y v 2 + b v · y v + c v ∫ y v y 1 ds = ps ⇒ ( x v , y v )
z h = a h · x h 2 + b h · x h + c h ∫ x h x 1 ds = p s p ⇒ ( x h , z h )
e)(xh,yh,zh)即为关键节点P的3维坐标值;
势能-阈值对——弯曲恢复程度、扭转程度的确定:
势能-阈值对在竖直面和水平面内的计算方法和比较过程是:
设k-势能调整系数,rid-硬度,wet-湿度,p-压力
在竖直面内:势能Ev=k·(Δθv)2,阈值 T v = δ v · rid p · wet , 其中
Figure C2005101151830005C4
若Ev≤Tv则弯曲可以完全恢复;若Ev>Tv则弯曲部分恢复后有残余形变,残余势能ΔE=Ev-Tv,脊骨仅能恢复到Ev=ΔE时的状态;
在水平面内:势能Eh=k·(Δθh)2,阈值Th=δh·p·wet·μ,其中,
Figure C2005101151830005C5
若Eh≤Th则笔尖点未能摆脱摩擦力束缚,位置不变,扭转程度增大;若Eh>Th则恢复到Eh=Th,扭转程度达到最大;
笔刷受压形变——骨架中的一个辅助面即是笔刷的一个横截面,辅助面初始时类似于圆面,当笔刷与纸面接触并且受到下压力时,随着压力或者笔杆与纸面夹角的增大,它的各轴长度在垂直方向上减小,在水平方向上增大,从而变化为一个类椭圆面,但面积大小不变;依据辅助面面积守恒原理,首先找到一个到弯曲脊骨曲率最大处的距离最小的关键节点,确定以该节点为中心的辅助面的受挤压形变程度,即变为椭圆面后,椭圆面的长短轴大小,然后在该处形变的基础上求解一条表面形变控制曲线,该曲线确定其它辅助面的受挤压形变程度,所有的这些变化的集合就可以反映出笔刷的表面形变,步骤如下:
a)对一个特定时刻的弯曲脊骨确定其曲率最大处的关键节点——即检查以关键节点为中心的辅助面上是否有低于纸面的辅助节点,从脊骨根部点起向尖部点依次遍历,第一个满足这种情况的关键节点即作为曲率最大处的关键节点;
b)计算以此关键节点为中心的辅助面的最短轴,即辅助面变形为椭圆面后,该椭圆面的短轴距离——最短轴距离由该辅助面初始半径R与挤压比率f的乘积确定,即Rmin=R×f,
挤压比率f与压力成正比,与脊骨长度成反比,与笔杆与纸面夹角成正比,公式为:
f=1-λ·ap/l,其中
λ-调整因子
a-笔杆与纸面夹角
l-笔刷长度
p-压力
c)由脊骨尖部辅助面,最大曲率处辅助面和脊骨根部辅助面上的最长轴,即辅助面变形为椭圆面后,该椭圆面的长轴在脊骨同一侧的辅助节点,确定一条水平面曲线方程:z=ax2+bx+c;用这条根据已调整的辅助面上的节点得到的曲线调整其它辅助面;
d)各辅助面最长轴所在直线的水平面投影与控制曲线有一个交点,该点到中心在水平面上的投影的距离即是其新的最长轴半径Rmax;依据面积守恒原理,受挤压时椭圆面的面积等于初始时圆面的面积,受挤压辅助面的椭圆的最短轴半径Rmin=R2/Rmax
e)根据新的最短轴半径调整各个辅助节点的3维空间坐标;
第三、分叉模块
依据输入的信息,判断是否应产生分叉,计算脊骨上开始产生分叉的关键节点位置,和分叉部分与主体部分之间的初始间隔,最后将对分叉部分的控制传递给动态控制模块;
当毛笔承受的压力、倾斜角度和湿度的综合值c=λ*p*α/w超过模块设定的限定值t后,即产生分叉,这里的限定值t是系统的预设值,通过实验确定,只有当c>t时才会出现分叉效果,其中上述公式中的符号表示,c-综合值、λ-调整因子、p-当前压力值、α-毛笔与XOZ面夹角、w-笔刷湿度;同时调整因子变为其原值的q倍,0<q<1可由用户设定,以保证只有当压力再次超过某一定值后才会产生新的分叉,而不是陷入不断分叉的死循环中;
开始产生分叉的关键节点由公式
Figure C2005101151830007C1
确定,其中n-关键节点数,t-分叉限定值;
分叉脊骨与主脊骨的初始间隔大小与毛笔所受压力,以及持笔角度成比例关系,但在这一范围内又具有一定的随机性,公式为initGap=σ*p*α,其中,initGap-初始分叉间隔;σ-随机因子,由各种编程语言内含的随机数生成函数生成;
分叉脊骨与主脊骨之间的偏移量主要体现在每一时刻变化开始时二者的尖端点在Z轴向的距离,这是一个动态变化的值,设定其公式为:
Gap=λ*p*α/w+initG其中:
Gap-分叉脊骨与主脊骨偏移量
λ-调整因子
p-毛笔所受下压力
α-笔杆与纸面夹角
w-笔刷当前湿度
initGap-初始偏移量
分叉控制模块在初始化分叉脊骨后,把对分叉脊骨运动变化的控制交给动态控制模块,动态控制模块把主脊骨在竖直面和水平面上控制曲线的参数传递给分叉脊骨,分叉脊骨根据这些参数:
●从主脊骨复制得到它自身在竖直面上的控制曲线,
●分叉脊骨尖部点的z0坐标由主脊骨尖部点的z0坐标加上偏移量得到,由此确定它在水平面上的控制曲线;
以上计算结束后,动态控制模块对分叉脊骨的控制就与主脊骨相同了;
上述过程反复进行,即可对虚拟毛笔模型进行动态控制,在计算机屏幕上模拟出真实毛笔的运动变形并最终显示毛笔的笔迹。
CNB2005101151832A 2005-07-08 2005-11-15 基于压感笔等装置的三维毛笔模型与仿真方法 Expired - Fee Related CN100346355C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101151832A CN100346355C (zh) 2005-07-08 2005-11-15 基于压感笔等装置的三维毛笔模型与仿真方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200510014445.6 2005-07-08
CN200510014445 2005-07-08
CNB2005101151832A CN100346355C (zh) 2005-07-08 2005-11-15 基于压感笔等装置的三维毛笔模型与仿真方法

Publications (2)

Publication Number Publication Date
CN1870052A CN1870052A (zh) 2006-11-29
CN100346355C true CN100346355C (zh) 2007-10-31

Family

ID=37443709

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101151832A Expired - Fee Related CN100346355C (zh) 2005-07-08 2005-11-15 基于压感笔等装置的三维毛笔模型与仿真方法

Country Status (1)

Country Link
CN (1) CN100346355C (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4872111B2 (ja) * 2007-04-19 2012-02-08 株式会社ワコム 位置指示器
US8830242B2 (en) * 2008-10-30 2014-09-09 Adobe Systems Incorporated Realistic real-time simulation of brush behavior
CN101599180B (zh) * 2009-03-05 2012-06-13 浙江大学 基于字迹风格模仿的计算机书法自动生成方法
CN101699516B (zh) * 2009-10-30 2012-09-05 华南理工大学 一种手写汉字美化的笔画渲染方法
CN102103762B (zh) * 2011-01-31 2012-11-28 北京壹人壹本信息科技有限公司 一种手写原笔迹的实现方法
US9183428B2 (en) * 2011-01-31 2015-11-10 Beijing Ereneben Information Technology Co., Ltd. Method and device for implementing original handwriting trace, and electronic device
CN102830824B (zh) * 2011-06-13 2017-12-26 崔伟 一种软笔仿真系统及软笔仿真方法
CN103345773B (zh) * 2013-06-20 2015-11-18 大连理工大学 一种基于力反馈技术的毛笔建模方法
CN104442020B (zh) * 2013-09-25 2016-11-09 中科英华湖州工程技术研究中心有限公司 书法复制装置
CN103640341B (zh) * 2013-11-25 2015-12-09 新昌县镜岭镇柳良轴承厂 纸质书法作品的复制装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1323427A (zh) * 1998-08-31 2001-11-21 株式会社日立制作所 带摄象机的笔型输入装置
CN1423234A (zh) * 2001-12-07 2003-06-11 天瀚科技股份有限公司 具有可手写输入功能的图像处理系统及其执行方法
CN1484201A (zh) * 2002-09-20 2004-03-24 财团法人工业技术研究院 可呈现笔划粗细变化的字型描述法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1323427A (zh) * 1998-08-31 2001-11-21 株式会社日立制作所 带摄象机的笔型输入装置
CN1423234A (zh) * 2001-12-07 2003-06-11 天瀚科技股份有限公司 具有可手写输入功能的图像处理系统及其执行方法
CN1484201A (zh) * 2002-09-20 2004-03-24 财团法人工业技术研究院 可呈现笔划粗细变化的字型描述法

Also Published As

Publication number Publication date
CN1870052A (zh) 2006-11-29

Similar Documents

Publication Publication Date Title
CN100346355C (zh) 基于压感笔等装置的三维毛笔模型与仿真方法
Keefe et al. Drawing on air: Input techniques for controlled 3D line illustration
CN102436348A (zh) 一种基于力信息的毛笔书法表达方法
CN109664300A (zh) 一种基于力觉学习的机器人多风格书法临摹方法
Vandoren et al. IntuPaint: Bridging the gap between physical and digital painting
CN102520849A (zh) 电子毛笔书写方法及系统
CN101699516A (zh) 一种手写汉字美化的笔画渲染方法
CN106843650B (zh) 一种触摸屏一体机的触摸识别方法及系统
CN104391613A (zh) 基于光学原理的书法笔迹获取系统
CN104821005B (zh) 可模拟笔势风格的汉字书法作品书写过程动态复现的方法
CN103559732A (zh) 一种生成毛笔笔迹的方法
CN103020085A (zh) 一种个人风格化书法动态字库的实现方法及其应用
CN111475667A (zh) 一种基于手写汉字的机械臂楷体风格书法撰写方法
CN104391651A (zh) 基于光学原理的书法笔迹呈现方法
Huang et al. Research progress on and prospects for virtual brush modeling in digital calligraphy and painting
Gülzow et al. Self-improving robotic brushstroke replication
CN109857322B (zh) 一种基于安卓的画笔宽度控制方法和装置
CN104408978B (zh) 基于光学原理的书法笔迹呈现系统
CN203149896U (zh) 一种软笔书法临摹板
CN100351759C (zh) 可模拟不同笔触的手写笔
CN105094378B (zh) 一种操控笔尖三维运动的手写字迹模仿方法
CN2847369Y (zh) 带操纵杆的鼠标
CN204303184U (zh) 基于光学原理的书法笔迹呈现系统
Abdullah et al. Symmetry patterns: An analysis on frieze patterns in Malay Telepuk Fabric
Liang Research on innovative thinking of ceramic art design based on artificial intelligence

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee