CN104616337B - 一种基于纵向切分的风吹无叶树的摇曳模拟方法 - Google Patents
一种基于纵向切分的风吹无叶树的摇曳模拟方法 Download PDFInfo
- Publication number
- CN104616337B CN104616337B CN201510069829.1A CN201510069829A CN104616337B CN 104616337 B CN104616337 B CN 104616337B CN 201510069829 A CN201510069829 A CN 201510069829A CN 104616337 B CN104616337 B CN 104616337B
- Authority
- CN
- China
- Prior art keywords
- mrow
- wind
- msub
- tree
- trunk
- 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
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Wind Motors (AREA)
Abstract
本发明公开一种基于纵向切分的风吹无叶树的摇曳模拟方法,具体按照以下步骤实施:步骤1、结合大气动力学和噪声技术,建立风场模型及给出风力计算方法;步骤2、采用纵向切分的方法划分无叶树;步骤3、利用悬臂梁模型分别模拟每一等份内的树干和树枝的运动,通过叠加每一等份的运动来实现风场内整个无叶树联动的模拟。本发明一种基于纵向切分的风吹无叶树的摇曳模拟方法,不仅适用于无叶树完全处于风影响状态下的模拟,还可以重建出无叶树的某一部分与风发生相互作用产生摇曳运动的模拟。
Description
技术领域
本发明属于计算机图形学和虚拟现实相结合的交叉学科技术领域,具体涉及一种基于纵向切分的风吹无叶树的摇曳模拟方法。
背景技术
自然场景仿真一直是计算机图形学和虚拟现实的一个重要研究领域,在计算机动画,影视特效及虚拟现实等方面具有广泛的应用。而树木的动态模拟是自然场景仿真中的关键问题。无叶树作为树的一种典型代表,在虚拟场景中合成其逼真的摇曳效果,直接影响着场景的真实感。
大气中的风对树的运动起到了至关重要的作用,风作为无形的流体,其形态复杂多变,并不断影响着周围的环境,对于无叶树的摇曳来说更是如此。要实现风力作用下的无叶树的摇曳的实时模拟,需要大量的计算和研究。因此,如何对无叶树的摇曳运动进行实时逼真地模拟就成为计算机图形学和虚拟现实中一个极具挑战性的问题。
近年来,国内外学者一直关注树木摇曳的建模和可视化的研究,并对其进行大量的积极探索。目前针对树木摇曳建模的方法较多,其中运用最广的方法是:基于过程式动画方法、基于物理的模拟方法以及基于视频的树木摇曳效果模拟。
过程式动画方法是利用经验公式来模拟树木的动态摇曳效果。针对树的枝条形变,采用关节形变方法,通过改变各段枝条间的夹角模拟枝条的弯曲。孙建发等人提出在三维树的递归生成过程中应用矢量合成原理,生成树在风中运动的动画。Ota等人采用1/fβ噪声函数描述树枝摇摆时夹角的改变,利用与静态弹簧模型相结合,实现实时模拟树木动态摇曳效果。
基于物理的模拟方法是对树木摇曳的物理机理进行合理的建模,通过构造、求解动力学系统方程组,实现树木的动态摇曳效果。Diener等人采用模态分析从3D树的力学模型中提取形变模型。Pivato等人也是采用模态分析的方法模拟树的动态运动,由于树在力的作用下弯曲的位移与受到的力的大小不是线性相关的,该方法通过引入树在风力下弯曲时产生的阻力,以解决树弯曲的几何非线性相关的问题。同样的,他们忽略了树的局部在风力作用下的运动情况。
基于视频的树木摇曳效果模拟方法是利用实拍的树木摇曳动画视频反求出视频中的树木运动信息,从而实现新的树木动态摇曳效果。Diener等人通过对一段包含树木盆景的摇曳动画视频进行跟踪获取其特征点的运动情况,从而得到树木盆景的三维形变信息,并将形变迁移到新的与之相似的三维树木模型上合成其动态摇曳效果。
然而,目前这些相关的方法对树在风中的摇曳运动的研究均是基于树完全处于风影响的状态下进行模拟的。但对于无叶树的某一部分与风发生相互作用产生摇曳运动的模拟研究较少。根据日常观察可以发现,风吹过森林时,往往会出现高一些的树在随风运动,而低一些的树是静止的。同样也会出现低层的树运动,而高层的树却静止的现象。这是由于地域的差异、风的形成机制以及外界环境的影响,使得空气只在某一范围内流动。也就是说,存在树的某一部分而非整体,与风发生相互作用,从而产生摇曳运动。针对这一特点,我们采用一种局部无叶树在风力作用下的实时模拟方法,重建出无叶树的某一部分与风发生相互作用产生摇曳运动的模拟。
发明内容
本发明的目的是提供一种基于纵向切分的风吹无叶树的摇曳模拟方法,解决了现有技术中存在的仅适用于无叶树完全处于风影响状态下的模拟,无法重建出无叶树的某一部分与风发生相互作用产生摇曳运动的模拟的问题。
本发明所采用的技术方案是,一种基于纵向切分的风吹无叶树的摇曳模拟方法,具体按照以下步骤实施:
步骤1、结合大气动力学和噪声技术,建立风场模型及给出风力计算方法;
步骤2、采用纵向切分的方法划分无叶树;
步骤3、利用悬臂梁模型分别模拟每一等份内的树干和树枝的运动,通过叠加每一等份的运动来实现风场内整个无叶树联动的模拟。
本发明的特点还在于,
步骤1中风场模型的建立具体为:
平均风的数学模型为:
其中,uWR表示参考高度HR上的平均风速;uW表示高度为H处的风速;m表示风速随高度变化的指数,受地面粗糙度和大气稳定性的影响;
随机风为在平均风的基础上添加Perlin噪声,数学模型为:
V=V0·sin(ωt+β)+α·PerlinNoise(t) (2)
其中,V0为风初始速度,V是t时刻的风速,PerlinNoise(t)函数是以时间t为变量的Perlin噪声函数;
步骤1中风力的计算方法为:
物体在空气流场中时,会受到两种力的作用:升力Fl和压力所产生的阻力Fd:
其中,Cl为升力系数,Cd为阻力系数,S面表示物体与风的接触面积,S面=2πrL,ρ为空气密度,V是风速。
步骤2无叶树模型的划分具体为:
步骤2.1、初始化状态位sum=1,每一等份无叶树受到的风速为speedi=0,并备份为copyspeedi=0,以区别不同状态下每一等份受到的风速;其中,sum为第sum次计算风速,i为无叶树划分的等份数;
步骤2.2、计算树干骨架点到风源的距离
假定风与Z轴正向的夹角为zWind,从Z轴正向往下看,风与X轴的逆时针夹角为xWind,根据球坐标系建立风的单位向量:
风向在XOY面上的投影向量为
树干骨架点到风源的距离为:
d=|cos(xWind)·x0+sin(xWind)·y0+C| (5)
取最小值dmin,阈值sheld=dmin/2,状态位j=2,同时备份风速speedi的值到copyspeedi中,其中j表示无叶树的第j等份;
步骤2.3、将所有到风源的距离小于sheld的树干骨架点和树枝所在圆环圆心归为第一等份,记为unit1;根据初始风速计算风吹过第一等份所花费的时间tsum,并将衰减后的风速存入speed1中,sum++;如果此时unit1受到的风速copyspeed1≠0,表示还需继续划分,转到步骤2.4;如果copyspeed1=0,表示划分结束,并转到步骤2.2;
步骤2.4、阈值sheld=sheld+copyspeedj-1·tj,将所有到风源的距离小于sheld的树干骨架点和树枝所在圆环圆心归为第j等份,记为unitj;根据风速copyspeedj-1计算风吹过第j等份后的风速,并存入speedj中,j++;如果此时unitj受到的风速copyspeedj≠0,表示还需继续划分,重复步骤2.4,直到j>sum;如果copyspeedj=0,表示划分结束,并转到步骤2.2。
步骤2.4中风吹过第j等份后的风速speedj计算方法为:
其中,Vtree为第j等份的树的体积,V为第j等份的总体积。
步骤3每一等份内的树干和树枝的运动具体为:
树干的运动通过其骨架点的运动来表示,而树枝的运动由所在圆环的圆心的运动来表示;将两个相邻骨架点间的树干和相邻圆环圆心间的树枝均看成一个树木杆件,利用悬臂梁模型模拟树杆在风力作用下的运动;未长树枝的树干作为树最结实的部分,其受风力影响产生的形变较小,上下形变差异不大,因此不考虑风只作用在树干部分时树的运动;
结合牛顿定律、材料力学、运动学进行分析,每个悬臂梁模型在风力作用下均满足以下方程:
F-k·S=ma (7)
v=v0+atj (8)
其中,k为树杆的弹性系数,m为树杆的质量,a为树杆运动的加速度,v0为树杆tj时刻前运动的速度,v为树杆此时的速度,S为树杆此时运动的位移,F为树杆受到的合外力;
且有:
其中,E为树杆的杨氏模量,L为树杆的长度,ρm为树杆的密度,r为树杆的半径;
风与树杆之间的夹角为θ,树杆的单位方向向量为风向的单位方向向量为则三维风场作用在树干段上的有效力为且存在如下关系:
根据三角函数公式求出sinθ的值:
风力分为升力Fl和阻力Fd:
公式(13)结合公式(3)、公式(4),公式(7)改写为:
公式(14)结合公式(8)、(9)求出树干运动的位移S,最后将若干位移组合起来,即为树干在风力作用下的运动轨迹;
对于未受风力影响的树杆部分,根据牛顿第一定律,将先保持静止状态,当该树杆的前一个中心点的运动速度不为0时,该部分树杆才开始运动,且运动距离为:
S=λ·Sτ (15)
其中,λ为(0,1)的一个常数,S为该树杆运动的距离,Sτ为该树杆前一个中心点运动的距离。
本发明的有益效果是:一种基于纵向切分的风吹无叶树的摇曳模拟方法,不仅适用于无叶树完全处于风影响状态下的模拟,还可以重建出无叶树的某一部分与风发生相互作用产生摇曳运动的模拟。
附图说明
图1是本发明方法中无叶树的空间模型划分图;
图2是本发明方法中无叶树的树干在风力作用下的形变图;
图3是本发明方法中树木非末梢部分在风力作用下的运动图;
图4是本发明方法中树木末梢部分在风力作用下的运动图;
图5是本发明方法中整个无叶树在风力作用下的运动效果图;
图6是本发明方法中无叶树的非末梢部分在风力作用下的运动效果图;
图7是本发明方法中无叶树的末梢部分在风力作用下的运动效果图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
一种基于纵向切分的风吹无叶树的摇曳模拟方法,具体按照以下步骤实施:
步骤1、结合大气动力学和噪声技术,建立风场模型及给出风力计算方法:
①平均风的数学模型为:
其中,uWR表示参考高度HR上的平均风速;uW表示高度为H处的风速;m表示风速随高度变化的指数,受地面粗糙度和大气稳定性的影响,最常用的是1/7,即m=0.142;
②随机风为在平均风的基础上添加Perlin噪声,数学模型为:
V=V0·sin(ωt+β)+α·PerlinNoise(t) (2)
其中,V0为风初始速度,V是t时刻的风速,PerlinNoise(t)函数是以时间t为变量的Perlin噪声函数,ω、β为参数为正弦函数的参数,α为Perlin噪声函数系数,ω、β、α这三个参数用于调整风场模型;
③风力的计算方法为:
物体在空气流场中时,会受到两种力的作用:升力Fl和压力所产生的阻力Fd:
其中,Cl为升力系数,Cd为阻力系数,S面表示物体与风的接触面积,S面=2πrL,ρ为空气密度,V是风速。
步骤2、采用纵向切分的方法划分无叶树具体步骤如下:
为了体现无叶树在风力的作用下顺着风向依次运动,首先将整个无叶树模型划分成13等份,如图1所示:
步骤2.1、初始化状态位sum=1,每一等份无叶树受到的风速为speedi=0(i=1,2,…,13),并备份为copyspeedi=0(i=1,2,…,13),以区别不同状态下每一等份受到的风速;其中,sum为第sum次计算风速,i为无叶树划分的等份数(本实施例中i取值为13,即将无叶树划分为13等份);
步骤2.2、计算树干骨架点到风源的距离
假定风与Z轴正向的夹角为zWind,从Z轴正向往下看,风与X轴的逆时针夹角为xWind,根据球坐标系建立风的单位向量:
风向在XOY面上的投影向量为
树干骨架点到风源的距离为:
d=|cos(xWind)·x0+sin(xWind)·y0+C| (5)
取最小值dmin,阈值sheld=dmin/2,状态位j=2,同时备份风速speedi的值到copyspeedi中,其中j表示无叶树的第j等份;常数C的取值为0.1,距离d的值越小,说明该树干段或树枝离风源越近,受到风力的影响越早;反之,则受到风力影响的时间越晚。
步骤2.3、将所有到风源的距离小于sheld的树干骨架点和树枝所在圆环圆心归为第一等份,记为unit1;根据初始风速计算风吹过第一等份所花费的时间tsum,并将衰减后的风速存入speed1中,sum++;如果此时unit1受到的风速copyspeed1≠0,表示还需继续划分,转到步骤2.4;如果copyspeed1=0,表示划分结束,并转到步骤2.2;
步骤2.4、阈值sheld=sheld+copyspeedj-1·tj,将所有到风源的距离小于sheld的树干骨架点和树枝所在圆环圆心归为第j等份,记为unitj;根据风速copyspeedj-1计算风吹过第j等份后的风速,并存入speedj中,j++;如果此时unitj受到的风速copyspeedj≠0,表示还需继续划分,重复步骤2.4,直到j>sum;如果copyspeedj=0,表示划分结束,并转到步骤2.2;
步骤2.4中风吹过第j等份后的风速speedj计算方法为:
其中,Vtree为第j等份的树的体积,V为第j等份的总体积。
步骤3、利用悬臂梁模型分别模拟每一等份内的树干和树枝的运动,通过叠加每一等份的运动来实现风场内整个无叶树联动的模拟:
划分完成后分别对每一等份内的树干和树枝的运动进行模拟。其中树干的运动通过其骨架点的运动来表示,而树枝的运动由所在圆环的圆心的运动来表示。将两个相邻骨架点间的树干和相邻圆环圆心间的树枝均看成一个树木杆件,利用悬臂梁模型模拟树杆在风力作用下的运动。未长树枝的树干作为树最结实的部分,其受风力影响产生的形变较小,上下形变差异不大。因此本发明不考虑风只作用在树干部分时树的运动。以树高7/10处为一个分界点,将无叶树分成两个部分:分界点以下的为非树梢部分,分界点以上的为树梢部分。
结合牛顿定律、材料力学、运动学进行分析,每个悬臂梁模型在风力作用下均满足以下方程:
F-k·S=ma (7)
v=v0+atj (8)
其中,k为树杆的弹性系数,m为树杆的质量,a为树杆运动的加速度,v0为树杆tj时刻前运动的速度,v为树杆此时的速度,S为树杆此时运动的位移,F为树杆受到的合外力;
且有:
其中,E为树杆的杨氏模量,L为树杆的长度,ρm为树杆的密度,r为树杆的半径。
风是大规模的气体流动现象,其大小和方向会发生随机性的变化。因此完全有可能出现风与树杆成夹角式的发生相互作用。假定风与树杆之间的夹角为θ,树杆的单位方向向量为风向的单位方向向量为则三维风场作用在树干段上的有效力为且存在如下关系:
根据三角函数公式求出sinθ的值:
风力分为升力Fl和阻力Fd,即:
公式(13)结合公式(3)、公式(4),公式(7)改写为:
公式(14)结合公式(8)、(9)求出树干运动的位移S,最后将若干位移组合起来,即为树干在风力作用下的运动轨迹,如图2所示;
对于未受风力影响的树杆部分,根据牛顿第一定律,将先保持静止状态,当该树杆的前一个中心点的运动速度不为0时,该部分树杆才开始运动,且运动距离为:
S=λ·Sτ (15)
其中,λ为(0,1)的一个常数,S为该树杆运动的距离,Sτ为该树杆前一个中心点运动的距离,如图3所示为树木非末梢部分在风力作用下的运动图,图4所示为树木末梢部分在风力作用下的运动图。
图5所示为整个无叶树在风力作用下的运动效果图、图6所示为无叶树的非末梢部分在风力作用下的运动效果图、图7所示为无叶树的末梢部分在风力作用下的运动效果图。
本发明一种基于纵向切分的风吹无叶树的摇曳模拟方法,不仅适用于无叶树完全处于风影响状态下的模拟,还可以重建出无叶树的某一部分与风发生相互作用产生摇曳运动的模拟。
Claims (4)
1.一种基于纵向切分的风吹无叶树的摇曳模拟方法,其特征在于,具体按照以下步骤实施:
步骤1、结合大气动力学和噪声技术,建立风场模型及给出风力计算方法;
步骤2、采用纵向切分的方法划分无叶树,无叶树模型的划分具体为:
步骤2.1、初始化状态位sum=1,每一等份无叶树受到的风速为speedi=0,并备份为copyspeedi=0,以区别不同状态下每一等份受到的风速;其中,sum为第sum次计算风速,i为无叶树划分的等份数;
步骤2.2、计算树干骨架点到风源的距离:
假定风与Z轴正向的夹角为zWind,从Z轴正向往下看,风与X轴的逆时针夹角为xWind,根据球坐标系建立风的单位向量:
<mrow>
<mover>
<msub>
<mi>n</mi>
<mi>F</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>=</mo>
<mi>sin</mi>
<mrow>
<mo>(</mo>
<mi>z</mi>
<mi>W</mi>
<mi>i</mi>
<mi>n</mi>
<mi>d</mi>
<mo>)</mo>
</mrow>
<mi>cos</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mi>W</mi>
<mi>i</mi>
<mi>n</mi>
<mi>d</mi>
<mo>)</mo>
</mrow>
<mo>,</mo>
<mi>sin</mi>
<mrow>
<mo>(</mo>
<mi>z</mi>
<mi>W</mi>
<mi>i</mi>
<mi>n</mi>
<mi>d</mi>
<mo>)</mo>
</mrow>
<mi>sin</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mi>W</mi>
<mi>i</mi>
<mi>n</mi>
<mi>d</mi>
<mo>)</mo>
</mrow>
<mo>,</mo>
<mi>cos</mi>
<mrow>
<mo>(</mo>
<mi>z</mi>
<mi>W</mi>
<mi>i</mi>
<mi>n</mi>
<mi>d</mi>
<mo>)</mo>
</mrow>
<mo>,</mo>
</mrow>
风向在XOY面上的投影向量为
树干骨架点到风源的距离为:
d=|cos(xWind)·x0+sin(xWind)·y0+C| (5)
取最小值dmin,阈值sheld=dmin/2,状态位j=2,同时备份风速speedi的值到copyspeedi中,其中j表示无叶树的第j等份;
步骤2.3、将所有到风源的距离小于sheld的树干骨架点和树枝所在圆环圆心归为第一等份,记为unit1;根据初始风速计算风吹过第一等份所花费的时间tsum,并将衰减后的风速存入speed1中,sum++;如果此时unit1受到的风速copyspeed1≠0,表示还需继续划分,转到步骤2.4;如果copyspeed1=0,表示划分结束,并转到步骤2.2;
步骤2.4、阈值sheld=sheld+copyspeedj-1·tj,将所有到风源的距离小于sheld的树干骨架点和树枝所在圆环圆心归为第j等份,记为unitj;根据风速copyspeedj-1计算风吹过第j等份后的风速,并存入speedj中,j++;如果此时unitj受到的风速copyspeedj≠0,表示还需继续划分,重复步骤2.4,直到j>sum;如果copyspeedj=0,表示划分结束,并转到步骤2.2;
步骤3、利用悬臂梁模型分别模拟每一等份内的树干和树枝的运动,通过叠加每一等份的运动来实现风场内整个无叶树联动的模拟。
2.根据权利要求1所述的一种基于纵向切分的风吹无叶树的摇曳模拟方法,其特征在于,所述步骤1中风场模型的建立具体为:
平均风的数学模型为:
<mrow>
<msub>
<mi>u</mi>
<mi>W</mi>
</msub>
<mo>=</mo>
<msub>
<mi>u</mi>
<mrow>
<mi>W</mi>
<mi>R</mi>
</mrow>
</msub>
<msup>
<mrow>
<mo>(</mo>
<mfrac>
<mi>H</mi>
<msub>
<mi>H</mi>
<mi>R</mi>
</msub>
</mfrac>
<mo>)</mo>
</mrow>
<mi>m</mi>
</msup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,uWR表示参考高度HR上的平均风速;uW表示高度为H处的风速;m表示风速随高度变化的指数,受地面粗糙度和大气稳定性的影响;
随机风为在平均风的基础上添加Perlin噪声,数学模型为:
V=V0·sin(ωt+β)+α·PerlinNoise(t) (2)
其中,V0为风初始速度,V是t时刻的风速,PerlinNoise(t)函数是以时间t为变量的Perlin噪声函数,ω,β,α均为调整随机风的参数,ω和β的取值体现了风速大小的随机变化,α的取值体现了风扰动的变化;
所述步骤1中风力的计算方法为:
物体在空气流场中时,会受到两种力的作用:升力Fl和压力所产生的阻力Fd:
其中,Cl为升力系数,Cd为阻力系数,S面表示物体与风的接触面积,S面=2πrL,ρ为空气密度,V是风速。
3.根据权利要求1所述的一种基于纵向切分的风吹无叶树的摇曳模拟方法,其特征在于,所述步骤2.4中风吹过第j等份后的风速speedj计算方法为:
<mrow>
<msub>
<mi>speed</mi>
<mi>j</mi>
</msub>
<mo>=</mo>
<mo>&lsqb;</mo>
<mn>1</mn>
<mo>-</mo>
<mfrac>
<msub>
<mi>V</mi>
<mrow>
<mi>t</mi>
<mi>r</mi>
<mi>e</mi>
<mi>e</mi>
</mrow>
</msub>
<mi>V</mi>
</mfrac>
<mo>&rsqb;</mo>
<mo>&CenterDot;</mo>
<msub>
<mi>copyspeed</mi>
<mrow>
<mi>j</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>6</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,Vtree为第j等份的树的体积,V为第j等份的总体积。
4.根据权利要求1~3任意一项所述的一种基于纵向切分的风吹无叶树的摇曳模拟方法,其特征在于,所述步骤3每一等份内的树干和树枝的运动具体为:
树干的运动通过其骨架点的运动来表示,而树枝的运动由所在圆环的圆心的运动来表示;将两个相邻骨架点间的树干和相邻圆环圆心间的树枝均看成一个树木杆件,利用悬臂梁模型模拟树杆在风力作用下的运动;未长树枝的树干作为树最结实的部分,其受风力影响产生的形变较小,上下形变差异不大,因此不考虑风只作用在树干部分时树的运动;
结合牛顿定律、材料力学、运动学进行分析,每个悬臂梁模型在风力作用下均满足以下方程:
F-k·S=ma (7)
v=v0+atj (8)
<mrow>
<mi>S</mi>
<mo>=</mo>
<msub>
<mi>v</mi>
<mn>0</mn>
</msub>
<mo>&CenterDot;</mo>
<msub>
<mi>t</mi>
<mi>j</mi>
</msub>
<mo>+</mo>
<msubsup>
<mi>at</mi>
<mi>j</mi>
<mn>2</mn>
</msubsup>
<mo>/</mo>
<mn>2</mn>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>9</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,k为树杆的弹性系数,m为树杆的质量,a为树杆运动的加速度,v0为树杆tj时刻前运动的速度,v为树杆此时的速度,S为树杆此时运动的位移,F为树杆受到的合外力;
且有:
<mrow>
<mfenced open = "{" close = "">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>k</mi>
<mo>=</mo>
<mi>E</mi>
<mo>&CenterDot;</mo>
<mi>L</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>m</mi>
<mo>=</mo>
<msub>
<mi>&rho;</mi>
<mi>m</mi>
</msub>
<mo>&CenterDot;</mo>
<msup>
<mi>&pi;r</mi>
<mn>2</mn>
</msup>
<mo>&CenterDot;</mo>
<mi>L</mi>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>10</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,E为树杆的杨氏模量,L为树杆的长度,ρm为树杆的密度,r为树杆的半径;
风与树杆之间的夹角为θ,树杆的单位方向向量为风向的单位方向向量为则三维风场作用在树干段上的有效力为且存在如下关系:
<mrow>
<mi>c</mi>
<mi>o</mi>
<mi>s</mi>
<mi>&theta;</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>F</mi>
<mo>&CenterDot;</mo>
<mi>L</mi>
</mrow>
<mrow>
<mo>|</mo>
<mover>
<mi>F</mi>
<mo>&RightArrow;</mo>
</mover>
<mo>|</mo>
<mo>&CenterDot;</mo>
<mo>|</mo>
<mover>
<mi>L</mi>
<mo>&RightArrow;</mo>
</mover>
<mo>|</mo>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>11</mn>
<mo>)</mo>
</mrow>
</mrow>
根据三角函数公式求出sinθ的值:
<mrow>
<mi>s</mi>
<mi>i</mi>
<mi>n</mi>
<mi>&theta;</mi>
<mo>=</mo>
<msqrt>
<mrow>
<mn>1</mn>
<mo>-</mo>
<msup>
<mrow>
<mo>(</mo>
<mover>
<msub>
<mi>n</mi>
<mi>F</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>&CenterDot;</mo>
<mover>
<msub>
<mi>n</mi>
<mi>L</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>12</mn>
<mo>)</mo>
</mrow>
</mrow>
风力分为升力Fl和阻力Fd:
<mrow>
<mover>
<mi>F</mi>
<mo>&RightArrow;</mo>
</mover>
<mo>=</mo>
<msub>
<mover>
<mi>F</mi>
<mo>&RightArrow;</mo>
</mover>
<mi>l</mi>
</msub>
<mo>+</mo>
<msub>
<mover>
<mi>F</mi>
<mo>&RightArrow;</mo>
</mover>
<mi>d</mi>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>13</mn>
<mo>)</mo>
</mrow>
</mrow>
公式(13)结合公式(3)、公式(4),公式(7)改写为:
<mrow>
<mi>a</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mo>(</mo>
<msub>
<mi>C</mi>
<mi>l</mi>
</msub>
<mo>+</mo>
<msub>
<mi>C</mi>
<mi>d</mi>
</msub>
<mo>)</mo>
<mo>&CenterDot;</mo>
<msup>
<mi>&rho;V</mi>
<mn>2</mn>
</msup>
<mo>&CenterDot;</mo>
<msqrt>
<mrow>
<mn>1</mn>
<mo>-</mo>
<msup>
<mrow>
<mo>(</mo>
<mover>
<msub>
<mi>n</mi>
<mi>F</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>&CenterDot;</mo>
<mover>
<msub>
<mi>n</mi>
<mi>L</mi>
</msub>
<mo>&RightArrow;</mo>
</mover>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
<mo>&CenterDot;</mo>
<mi>&pi;</mi>
<mi>r</mi>
<mo>-</mo>
<mi>E</mi>
<mo>&CenterDot;</mo>
<mi>S</mi>
</mrow>
<mrow>
<msub>
<mi>&rho;</mi>
<mi>m</mi>
</msub>
<mo>&CenterDot;</mo>
<msup>
<mi>&pi;r</mi>
<mn>2</mn>
</msup>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>14</mn>
<mo>)</mo>
</mrow>
</mrow>
公式(14)结合公式(8)、(9)求出树干运动的位移S,最后将若干位移组合起来,即为树干在风力作用下的运动轨迹;
对于未受风力影响的树杆部分,根据牛顿第一定律,将先保持静止状态,当该树杆的前一个中心点的运动速度不为0时,该部分树杆才开始运动,且运动距离为:
S=λ·Sτ (15)
其中,λ为(0,1)的一个常数,S为该树杆运动的距离,Sτ为该树杆前一个中心点运动的距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510069829.1A CN104616337B (zh) | 2015-02-10 | 2015-02-10 | 一种基于纵向切分的风吹无叶树的摇曳模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510069829.1A CN104616337B (zh) | 2015-02-10 | 2015-02-10 | 一种基于纵向切分的风吹无叶树的摇曳模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104616337A CN104616337A (zh) | 2015-05-13 |
CN104616337B true CN104616337B (zh) | 2017-11-28 |
Family
ID=53150770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510069829.1A Expired - Fee Related CN104616337B (zh) | 2015-02-10 | 2015-02-10 | 一种基于纵向切分的风吹无叶树的摇曳模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104616337B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107274468B (zh) * | 2017-05-10 | 2021-02-02 | 珠海金山网络游戏科技有限公司 | 一种应用于三维游戏的受风处理方法及系统 |
CN112634727A (zh) * | 2020-12-07 | 2021-04-09 | 广东省建筑设计研究院有限公司 | 一种模拟乔木和结构耦合振动的本构模型 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3958527B2 (ja) * | 2001-03-06 | 2007-08-15 | 独立行政法人科学技術振興機構 | 風のシミュレーション・システム |
CN103914872A (zh) * | 2014-03-07 | 2014-07-09 | 西北农林科技大学 | 一种基于简化模态分析法的树动画模拟方法 |
CN104008561A (zh) * | 2014-06-11 | 2014-08-27 | 无锡梵天信息技术股份有限公司 | 一种基于gpu模拟过程式动画的实现方法 |
-
2015
- 2015-02-10 CN CN201510069829.1A patent/CN104616337B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3958527B2 (ja) * | 2001-03-06 | 2007-08-15 | 独立行政法人科学技術振興機構 | 風のシミュレーション・システム |
CN103914872A (zh) * | 2014-03-07 | 2014-07-09 | 西北农林科技大学 | 一种基于简化模态分析法的树动画模拟方法 |
CN104008561A (zh) * | 2014-06-11 | 2014-08-27 | 无锡梵天信息技术股份有限公司 | 一种基于gpu模拟过程式动画的实现方法 |
Non-Patent Citations (2)
Title |
---|
"一类流固耦合问题的数值算法及风场中摇曳树木的物理仿真";胡潇毅;《中国博士学位论文全文数据库 基础科学辑》;20081115(第11期);第83-84、88-96页 * |
快速模拟IFS树木动态摇曳的方法研究;赵鹏飞 等;《计算机工程与应用》;20130715;第160-163、169页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104616337A (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302974B (zh) | 一种基于有限元和时变模态分析的柔性物体实时切割仿真方法 | |
CN101944144B (zh) | 一种基于无网格的布类仿真方法 | |
CN104881557A (zh) | 一种计算机中人体服装动态仿真实现方法 | |
CN101719284B (zh) | 一种基于层次模型的虚拟人皮肤物理变形方法 | |
CN100440257C (zh) | 一种虚拟人群运动的三维可视化方法 | |
CN102289836B (zh) | 植物动画合成方法 | |
CN106504329B (zh) | 一种基于牙体长轴的质点弹簧模型的牙龈变形仿真方法 | |
Quigley et al. | Real-time interactive tree animation | |
CN102930599B (zh) | 一种基于双四元数的手运动的三维模拟方法 | |
CN103678769A (zh) | 基于人体骨架与二维形变的真实感服装创建方法 | |
CN105045496A (zh) | 一种基于关节点变换的手势交互方法 | |
CN103793552A (zh) | 一种软组织形变的局部质点弹簧模型的实时动态生成方法 | |
CN104616337B (zh) | 一种基于纵向切分的风吹无叶树的摇曳模拟方法 | |
CN103426196B (zh) | 一种流体环境下的关节动画建模方法 | |
CN103914872A (zh) | 一种基于简化模态分析法的树动画模拟方法 | |
CN101515373A (zh) | 竞技性交互式动画生成方法 | |
CN103729879A (zh) | 基于力觉计算的虚拟手稳定抓取方法 | |
CN105279781A (zh) | 基于多精度融合的流体动画生成方法 | |
CN109002571B (zh) | 基于等几何弹簧质点模型的布料动态仿真方法 | |
CN104794742A (zh) | 一种基于有限元方法的气球膨胀动画模拟方法 | |
CN104318599A (zh) | 一种基于几何特征的高精度流体动画建模方法 | |
CN109003319A (zh) | 角色动画中带有动力学约束的元球驱动蒙皮方法 | |
CN104156502B (zh) | 一种基于位置的衣物褶皱几何生成方法 | |
Merrell et al. | Constraint-based model synthesis | |
CN104615481A (zh) | 一种基于簇聚类的风吹有叶树摇曳模拟方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171128 Termination date: 20210210 |
|
CF01 | Termination of patent right due to non-payment of annual fee |