基于Java3D的水稻形态可视化试验
2017-06-15张丹丹陈祎琼王月康张友华吴云志
张丹丹,陈祎琼,王月康,张友华,徐 猛,吴云志
(1.安徽农业大学 信息与计算机学院,安徽 合肥 230036;2.安徽农业大学 农业信息工程实验室,安徽 合肥 230036 )
基于Java3D的水稻形态可视化试验
张丹丹1,2,陈祎琼1,2,王月康1,张友华1,2,徐 猛1,吴云志1
(1.安徽农业大学 信息与计算机学院,安徽 合肥 230036;2.安徽农业大学 农业信息工程实验室,安徽 合肥 230036 )
为了探究利用Java3D进行虚拟植物可视化的可行性,本文以水稻为研究对象,提出水稻主茎器官的可视化数学模型,在此模型基础之上,利用 Java3D 编程构建基于器官形态特征参数的三维空间模型。考虑到具体模型的自然形状,进行了相关简化。首先基于一元二次方程y=ax2+x模拟叶片的叶脉曲线,然后叶片则基于正弦曲线进行模拟,稻穗粒采用圆锥型进行简化模拟,稻穗杆和茎杆均用圆截面柱体进行模拟。结果表明:利用 Java3D 可以实现对水稻茎杆-叶片-稻穗的个体三维形态的可视化,从而为构建水稻可视化生长模型奠定了一定的技术基础。
水稻;主茎器官;可视化;Java3D
随着计算机技术的发展与普及,数学建模方法在很多科学领域如物理、气象和农业科学上面得到了广泛的运用。在作物生长领域,使用模型方法描述植物的生长状况的研究主要分为两个方向:一是以各种环境变量,如温湿度、土壤成分等参数来描述作物群体生长发育的过程,即作物生长模型;二是以植物的形态参数为基础,利用计算机图形学再现作物在三维空间中的动态生长过程,即虚拟作物模型。植物生长发育模型研究兴起于20世纪60年代中期,当时产生了 BACROS、CERES、ELCROS[1-2]等模型对植物形态结构和环境因素等方面的简化处理实现模拟。直到20世纪 70年代,计算机技术的发展为虚拟作物模型的研究提供了进一步发展的有利条件。近年来,已出现关于利用分形方法、粒子系统、L系统、分布生长等方法进行水稻、小麦、棉花、高粱、玉米等作物虚拟实现方法的研究[3-6]。
水稻生长形态较为复杂,且局限于没有水稻生长准确且真实的实验数据,只能对水稻形态进行简化,根据构建出的数学模型进行定量化模拟,省略了一些细节的表现。为此,本文提出水稻主茎器官的可视化数学模型,在此基础之上,利用Java3D实现水稻各主要器官形态的三维空间呈现,包括水稻叶片、水稻茎杆和稻穗等主要生长形态模型。
1 水稻形态建模与模拟
1.1 水稻叶片的建模
(1)
其中:m为调整系数(取值范围可控制在0.0~3.0);w为叶片最宽处的宽度;l为叶片长度;φ为叶倾角的弧度表示。
1.1.1 水稻叶片边缘建模
水稻叶片边缘轮廓采用曲线描述,一般曲线的描述通过控制点对曲线进行插值,但采用控制点插值的方法不利于整体坐标系的架构,遂简化为使用[0 π]区间内的正弦曲线进行拟合[9],具体方程为:
(2)
这样在xoy坐标系所生成的的点阵以及利用Java3D中网格化以后即可得到的结果如图1所示。
图1 不同类型的水稻叶中脉曲线抽样点阵表示和网格化后的效果图
1.1.2 水稻叶片的三维形态建模
通过以上分析,将构建整个水稻叶片的空间点划分为左中右3个部分,即将叶片左叶边缘点存入(Lxi,Lyi,Lzi)数组中,右叶边缘点存入(Rxi,Ryi,Rzi)数组中,而对叶中脉进行N段等分,每一等分点的坐标存入(Mxi,Myi,Mzi)数组中。并且记每一划分点所对应的叶半宽Hwi=(Rxi-Lxi)/2[10]。由于叶片的空间走向主要由叶中脉决定,所以先行确定叶中脉上点的具体坐标,由其推导出叶片左右边缘点x、y轴所对应的坐标值,对应的z轴坐标值分别取-Hwi和Hwi,具体构造方程式为:
(3)
图2 水稻叶片网格化和填充色图稻穗一次枝坐标系
图3 水稻稻穗坐标系结构图
1.2 水稻稻穗的建模
1.2.1 穗主轴的建模
稻穗在空间弯曲特征主要由穗主轴的空间走向决定。穗轴几何模型主要描述稻穗的空间弯曲姿态和一次枝的着生位置。本文主要用一次枝的弯曲姿态表征穗主轴的空间形态。
预先假设一稻穗上着生有若干个一次枝,而在每一个一次枝上附生有N个枝梗,即N个小穗,在此处采取一种简化:只考虑一次枝和一次枝梗的情况,即一次枝梗上不再着生二次枝梗。一次枝的设计参数有枝长Zl和枝节数Zn两个[11]。那么就对用于一次枝的曲线进行处理:对其进行N次等分,可得出N个一次枝的着生位置点(Zxi,Zyi,Zzi),其中i由0至N-1。此处得到的N个点即为小穗在一次枝坐标系中的局部坐标系原点,小穗便在此局部坐标系中建模[12]。稻穗坐标系结构如图3所示。
1.2.2 小穗的建模
小穗可分解为穗柄(枝梗)和谷粒两个部分构成。其中穗柄的建模较为简单,采用一个半径极小的圆柱进行拟合。其设计参数有穗柄半径和穗柄长度两个,一般考虑穗柄半径取穗柄长度的1/5~1/10[13]。穗柄半径用gr表示,穗柄长用gl表示,空间坐标点为:
(4)
其中:N为对拟合圆柱上下圆周等分数目,i=0,1,…,N-1。
图4 水稻稻穗的形态模拟图
图5 弯曲型稻穗的建模效果 图6 茎杆动态生长过程
图7 动态实现过程的长叶阶段和长穗阶段
小穗着生在一次枝梗的轴节处,因此采用2个共底面圆锥体来描述小穗的谷粒,而圆锥体用三角形片拟合,其表面光滑程度完全由用于拟合的三角形片的数目决定,其设计参数有谷粒半径、谷粒长度两个,设计方法类似于穗柄的设计,只需简化圆柱体一端为一点即可得到一个圆锥体模型,这样由2个共底面圆锥体描述的谷粒模型已设计完成,如图4所示。
1.2.3 稻穗的三维形态建模
在一次枝设计完成的基础上,通过调整拟合曲线的系数(a,b)、枝长(Zl)和枝节数(Zn),调整系数即为枝干空间弯曲角度。通过不同角度的组合即可构造出空间弯曲型的稻穗,建模后的稻穗三维模型如图5所示。
1.3 水稻茎杆的建模
水稻茎杆是由节和节间构成,其几何形态相对简单,忽略叶鞘的设计则可以用横截面为圆的柱体进行模拟。模型参数有节柱体内半径,节柱体外半径和节间长度,其中节柱体内半径控制茎杆的粗细,节柱体外半径控制茎杆的弯曲程度,节间长度则控制茎杆的生长长度。可以直接利用Java3D中的构造函数TorusGeometry创建柱体,然后改变长度及完全程度,即可完成茎秆模型的设计实现,效果如图6所示。
1.4 水稻主茎模型的建模
在上述水稻叶片、稻穗和茎秆模型建立的基础上,再根据水稻在生长过程中各器官的生长规律,将各器官参数设置,按其空间位置进行组合即可生成水稻主茎的形态模型。然后再对主茎模型进行旋转平移等变换构造其他分蘖的模型,将各分蘖组合在一起最终生成水稻植株模型如图7所示。
2 计算机可视化动态模拟实现
2.1 水稻主茎器官类的设计和实现
2.1.1 水稻叶片类的设计
1)public void DrawLeaf(float length,float wide,int n)为绘制叶片的主方法。参数length、wide和n分别为所绘制叶片的叶长、叶宽和拟合细分度。
2)private float DrawSin(float length,float wide)为绘制叶片边缘的方法。
3)private float DrawMidVen(float a,float b) 为绘制叶中脉曲线的方法。
2.1.2 水稻稻穗类的设计
1)public void DrawPaddy(float length,float radius,float szl)为绘制稻谷模型的方法。其中涉及参数length、radius为谷粒长度、谷粒半径,szl为穗柄长度:主要用于确定构造谷粒的空间坐标位置的一个恒增量。
2)pblic void DrawSz(float length,float radius)为绘制穗柄模型的方法。其中参数length、radius为所构造穗柄的长度和半径。
3)public void DrawS(float length,float n,float rot_x,float rot_y,float rot_z)为绘制一次枝模型的方法。其中参数length为具体设计的一次枝的长度,n为该一次枝上谷粒数,同时用于确定谷粒所在局部坐标系空间位置,而rot_x、rot_y、rot_z用于确定小穗沿穗主轴着生空间角度。
2.1.3 水稻茎秆类的设计
public void DrawStem(float height,float radius)为绘制茎秆模型的方法。所用参数height、radius分别对应茎秆的高度和半径。
2.2 主茎器官动态生长效果的实现
动画研究的核心内容之一就是研究几何形体如何在空间和时间中运动。Java3D中给出了一系列的内插器,可以方便地用于动画制作,内插器定义了几何形体如何在空间做运动,而对几何形体的时间控制主要使用Alpha对象[13]。在Java3D中Interpolator类的子类ScaleInterpolator可以使几何形体按照Alpha对象定义的方式进行缩放,实现特定比例范围的缩放。而Java3D中的Morph类可以将GeometryArray类型的几何物体的顶点在多个顶点数组之间变形,可以用来实现部分主茎器官的动态连续变化。
本文主要通过设定好主茎器官各组成部分在某一生长期始末效果模型中的顶点数组,这些顶点数组已预先设计为GeometryArray类的子类类型,所以可以通过设定Morph类中weight数组在Alpha对象所设定的时间变化范围内的变化方式来实现构造模型的状态变化。水稻叶片和茎秆模型的动态生长主要使用该种方法。而对于水稻稻穗的动态生长,可以描述为稻穗组成部分:主轴、穗柄和谷粒的增大、增粗的一个状态变化过程,而稻穗在三维空间所表现出的这种行为可以使用Java3D所提供的ScaleInterpolator类得到良好的实现。在Alpha对象的控制下,使用内插器ScaleInterpolator控制稻穗所在局部坐标系在一个适当的范围内进行一个由小到大的放大行为,即可近似实现水稻稻穗的生长过程如图 8所示。
图8 主茎器官动态生长实现框图
2.3 在Java3D中整体实现结构树
在Java3D中整体实现结构如图9和图10所示。
图9 整体场景结构图
图10 具体植株组成以及动态实现结构图
3 结 语
本文对应用Java3D构建水稻主茎器官模型及实现水稻植株动态生长进行了初步探索,实现了植株动态生长的近似模型,效果尚可。同时,也存在以下问题:(1)对水稻主茎器官各组成部分的模型建立都是采用GeometryArray类的子类型的构造方法来实现,而其实现方法本质是控制顶点数组元素的连线,用三角形面片近似模拟,那么所采用面片数目越多,构造的器官显示模型越光滑,精度也越高[13]。但现实情况需要考虑计算机的运算处理速度、内存容量等条件,所以在具体实现过程中应该寻求表示精度与程序性能的一种平衡。(2)对水稻植株分蘖的情况,实现方法主要参照文献[4],通过单株旋转平移得到的,所以植株效果图实际上是单株的复制,没有能够良好体现众分蘖之间只有相似性的特点。(3)在实现动态过程的表达上,采取的是预先设计好器官模型的始末状态,通过运算插值得以实现,没有能够良好实现器官生长的动态交互,但通过在具体器官设计时良好接口的设计,弥补了部分不足。
关于水稻的动态生长模拟及Java3D在虚拟植物表达上,基本实现了它们的初步结合与表达,但是还有很多方面需要进一步得到完善。
[1] Conti P.The Internet of Things[J].Communications Engineer,2006,4(6):20-25.
[2] Reffye P,Houllier F.Modelling plant growth and architecture:some recent advances and applications to agronomy and foresty[J].Current Science,1997,73(11):984-992.
[3] 石春林,金之庆,葛道阔.植物可视化研究进展[J].江苏农业科学,2004,31(6):11-14.
[4] 刘桃菊,唐建军,戚昌瀚.基于分形-系统的植株形态模拟[J].江西农业大学学报,2001,23(1):189-191.
[5] Watanabe Room P M, Hanan J S.Virtual rice:simulating the development of plant architecture[J].International Rice Research Notes,2001,26(2):60-62.
[6] 刘桃菊,唐建军,戚昌瀚.水稻形态的分形特征及可视化模拟研究[J].江西农业大学报,2002,24(5):583-586.
[7] 常丽英.水稻植株形态建成的模拟模型研究[D].南京:南京农业大学,2007:16-20.
[8] 伍艳莲.作物形态结构的可视化技术研究[D].南京:南京农业大学,2009:8-14.
[9] 郑文刚,郭新宇,赵春江,等.玉米叶片几何造型研究[J].农业工程学报,2004,20(1):152-154.
[10] 江顺亮.用进行三维实体上计算结果的展示[J].计算机应用,2001,21(8):171-174.
[11] Wit C T.Photosynthesis of leaf canopies[C]//Agricultural Research Report 663,PUDOC,Wageningen:The Netherlands,1965:1-57.
[12] 杨红云,罗威,何火姣,等.水稻主茎三维形态建模与计算机模拟[J].江西农业大学学报,2008,30(6):1154-1156.
[13] Duncan W G,Loomis R S,Williams W A,et al.A model for simulating photosynthesis in plant communities[J].modeling canopy photosynthesis,1967,38(4):181-205.
Visualization Simulation Based on Java3D for Rice Morphological
ZHANG Dandan, CHEN Yiqiong, WANG Yuekang, ZHANG Youhua, XU Meng, WU Yunzhi
(Anhui Agricultural University, Hefei 230036, China)
In order to explore Java3D conduct virtual plant feasibility, taking rice as the study object, this thesis presents a visual mathematical model of main stem organ of rice. With Java 3D programming of morphological characteristics of organs, a 3D space model is established. Meanwhile, considering the specific natural shapes, the model is simplified. First, quadratic equations are used to simulate the main vein image of leaves and sine curves are used to leaves, cone angles are used to grains, then, circular cross-sections are used to grape plant. Thus, a 3D visualization of stem-leaf-grain is presented.The results show that these figures lay a foundation of a further development of visual growth system of wheat plant.
rice; stem Organ; visualization; Java3D
2016-12-07
张丹丹(1992-),女,重庆万州人,在读硕士研究生,主要从事农业信息化方面的研究.
2015年安徽省科技重大专项项目(15czz03117).
10.3969/i.issn.1674-5403.2017.02.018
TP391.9
A
1674-5403(2017)02-0065-05