首页 / 专利库 / 人工智能 / 三维形变模型 / 基于压感笔等装置的三维毛笔模型与仿真方法

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

阅读:653发布:2021-02-16

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

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点的曲线弧长
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′点的曲线弧长
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 , 其中 若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与压力成正比,与脊骨长度成反比,与笔杆与纸面夹角成正比, 公式为:
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可由用户设 定,以保证只有当压力再次超过某一定值后才会产生新的分叉,而不是陷入 不断分叉的死循环中;
开始产生分叉的关键节点由公式 确定,其中n-关键节点 数,t-分叉限定值;
分叉脊骨与主脊骨的初始间隔大小与毛笔所受压力,以及持笔角度成比 例关系,但在这一范围内又具有一定的随机性,公式为initGap=σ*p* α,其中,initGap-初始分叉间隔;σ-随机因子,由各种编程语言内 含的随机数生成函数生成;
分叉脊骨与主脊骨之间的偏移量主要体现在每一时刻变化开始时二者 的尖端点在Z轴向的距离,这是一个动态变化的值,设定其公式为:
Gap=λ*p*α/w+initG其中:
Gap-分叉脊骨与主脊骨偏移量
λ-调整因子
p-毛笔所受下压力
α-笔杆与纸面夹角
w-笔刷当前湿度
initGap-初始偏移量
分叉控制模块在初始化分叉脊骨后,把对分叉脊骨运动变化的控制交给 动态控制模块,动态控制模块把主脊骨在竖直面和水平面上控制曲线的参数 传递给分叉脊骨,分叉脊骨根据这些参数:
●从主脊骨复制得到它自身在竖直面上的控制曲线,
●分叉脊骨尖部点的z0坐标由主脊骨尖部点的z0坐标加上偏移量得 到,由此确定它在水平面上的控制曲线;
以上计算结束后,动态控制模块对分叉脊骨的控制就与主脊骨相同了;
上述过程反复进行,即可对虚拟毛笔模型进行动态控制,在计算机屏幕 上模拟出真实毛笔的运动变形并最终显示毛笔的笔迹。

说明书全文

【技术领域】:本发明涉及一种计算机模拟仿真技术,特别是模拟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点的曲线弧长

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′点的曲线弧长

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·sin(βcurr-βprev)

其中

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

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 , 其中

若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(βcurr-βprev)=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。分叉起始关键节点序 号为 是从笔尖处关键节点算起的第四个节点。 初始分叉间隔initGap=σ*c=0.00285*11.7286=0.03343。由此产生第一条分 叉脊骨,并将该脊骨的控制转移给了动态控制模块。这里的限定值t可以由用户重 新设定,以满足不同的需要。参见图6、图10、图11。其中:8分叉偏移量,9分 叉脊骨,10主脊骨,11产生分叉的节点位置。

除了该种软豪毛笔外,系统还提供了其它种类的预设毛笔可供用户使用。用户 也可以通过在系统允许的范围内设定特定参数的数值,如硬度、湿度等,来取得符 合自身要求的毛笔。

本发明有以下几种有效的实施方式。

1.将各个时刻毛笔的形变连续叠加并显示在屏幕上,可以实时绘制出各种水墨 效果的笔道,用来进行中国画和书法的创作。以压感笔和数位板作为输入装置,用 户操纵压感笔的方式不同,可以实时绘制出不同的笔锋。这里以毛笔最基本的两种 笔法——中锋和侧锋为例,说明操作过程:

中锋——毛笔的技法中有一种最基本的中锋笔法,中锋亦是藏锋,执笔端正, 笔锋在墨线的中间,用笔的力量均匀,笔锋垂直于纸面,其效果圆浑稳重。相对于 其它运笔方法来说,中锋笔法更易被初学者掌握。如图12(a)中所示,用户按下 压感笔,然后基本顺着此时压感笔的倾斜方向运笔,反映在屏幕上,即是笔尖在笔 迹正中的中锋笔法。结合用笔的力度、速度、走势又可将中锋用笔演化成拖锋和逆 锋。

侧锋——侧锋是指用笔执笔偏侧,笔锋在墨线的边缘,笔锋与纸面形成一定的 角度,用力不均匀,时快、时慢、时轻、时重,其效果毛、涩变化丰富。如图12 (b)中所示,用户按下压感笔后,向笔杆一侧的方向运笔,反映在屏幕上,即是 笔尖在笔迹一侧的侧锋笔法。

中锋和侧锋是中国画和书法的最基本的两种笔法,结合用笔力度、向度、速度 等的变化,可演化为其它几种笔法。用户熟练使用后,完全可以使用压感笔模拟出 毛笔的勾、擦、点、染,以及飞白等表现手法

2.本发明可以融合到其它绘图软件中。用户控制屏幕中的三维虚拟毛笔进行绘 制,比单纯观察鼠标指针的移动更加直观、自然,上手容易。

3.由于很多西画种类如油画、水彩画等使用的也是软性笔刷,本发明只要经过 少量修改,就可以直接被用来仿真这些在西画中使用的笔刷。

高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈