您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于WebD的交互式虚拟水稻器官造型研究
基于Web3D的交互式虚拟水稻主茎模型研究报告(一)引言随着计算机图形学和计算机技术的发展,通过虚拟作物在三维空间中的形态结构及生长发育过程,以可视化的方式获得作物生长过程中的各参数的动态数据,可更好地帮助人们理解作物的生长发展变化,具有真实感、可交互操作等特点。虚拟作物的研究在农业科研、教学、生产、规划、农业资源配置等方面展示了良好的应用前景。虚拟水稻是虚拟作物的一个研究方向,目前国内外研究水稻生理生态模型较多,而且已经建立了较成熟的水稻生理。但从可视化角度出发,在Web网页上研究交互良好的水稻虚拟模型的报道还很少。本文采用Java3D技术,结合Web开发技术在网络页面实现了水稻结构器官形态的三维可视化模拟显示和交互控制,具有较强的真实感,可控性强,为进一步进行水稻和其它作物的虚拟研究提供一种新的思路。本研究以现有的水稻形态结构器官模型为研究起点,探索利用计算机图形学技术和Web技术实现在计算机浏览器上以多角度、交互可控的方式呈现水稻植株形态的三维可视化表达,实现虚拟水稻作物的研究和应用网络化。该项研究是数字农业关键技术的研究基础,对促进我国农业信息化的发展有着重要的意义。(二).开发环境:1.Jdk运行时;2.java运行时至少能支配150M内存(三)JAVA3D重建水稻器官模型Java3D是SUN公司推出的、面向Internet的三维动画程序语言。通过在网页上插入用Java3D编写的Applet,就能让浏览网页的用户感受到逼真的三维动画效果。Java3D采用基于场景图(SceneGraph)的编程模型,提供了大量Java3D类,开发者可以通过实例化这些类创建各种Java3D对象。1水稻结构器官模型水稻主茎地面形态结构主要由水稻叶片、叶鞘、茎和稻穗等器官构成,笔者通过对水稻叶、茎、叶鞘和稻穗的观测研究,构建了基于器官形态特征参数的精确几何造型算法,用于各器官的几何建模,水稻主茎地面各个结构器官模型如图1所示。2.水稻模型场景结构视图Java3D采用场景图(SceneGraph)作为数据结构。场景图属于一种称为有向无环图的类似于树的数据结构,它是对系统中所有图形对象及属性的完整定义,并和用于显示场景绘制图像的AWT组件相关联。场景图一般可分为:观察分支(用来建立场景视图)和内容分支(用来表示虚拟世界的图形内容)。内容分支以一个BranchGroup节点为根,其它的节点可以附属到此根节点上来完成虚拟世界的构造。其中Shape3D节点中存放三维形体几何信息及其外观属性。形体的位置由TransformGroup节点来设定。有了这些基本信息,就可以构建一个三维场景图了。由于在Java3D中只有BranchGroup节点能被其父节点更改,为了提高水稻结构器官显示的交互可控性,在(a)叶片(b)茎(c)叶鞘(d)穗轴(e)谷粒图1水稻结构器官形态模型(a)(b)(c)(d)(e)创建水稻模型时,为每个水稻器官模型首先创建了一个BranchGroup结点,再创建TransformGroup子节点,最后生成外形和几何形状,其场景结构模型视图构建如图2所示。(三)在页面中实现交互控制1.Java3D嵌入页面Java3D一个最大的特性是可以使用Applet作为显示容器,在Applet中显示3D图形和在网页文件中(HTML/JavaScript)嵌入该Applet,从而实现三维Web的可视化显示。但由于Java3D是对java的扩展,它的applet嵌入到网页时需要做一个特殊的转换,变成以objectembed方式定义的页面,这个转换需要用到sun提供的HtmlConverter工具来完成.本系统采用javaScript脚本来控制与Java3D程序的参数传递,这样就避免了Jsp参数传递时对网页的刷新而引起的Java3D程序的重新载入。为了网页的美观和实用,在网页设计时嵌入了两个ifram帧框架,左框架为input框架,用来输入水稻器官形态结构参数数据,右框架为riceMode框架,用来显示Java3D重建的水稻器官模型。2.Input框架与riceMode框架的参数传递Input框架对object的控制可以通过帧框架间的引用,然后通过dom对象访问object实例,从而实现对java3d程序的参数传递和控制。在js和java中变量的传递,由于js采用弱类型的变量形式,可以认为js中的变量都为String类型,而只有使用和赋值时才转换成相应的数据类型,这样在Java3D中可以通过对String类型的转化及将其它的类型转化为String来实现js和java中变量的传递。对于返回值的控制,由于不同浏览器对js函数返回值的要求不同,返回数组经常在一些浏览器中无法显示,所以这里我们将Java3D中所有的返回值都拼接成一个字符串,在js中通过对返回字符串的拆分(split方法),从而得到我们想要的数据。对input框架的初始值设置,由于不同框架的显示速度不同,往往input框架先于riceMode框架显示完成,而使得input框架无法访问object实例,造成网页错误,甚至无法显示。本文采用让object框架加载完成后刷新input框架,并通过js得到水稻主茎器官模型的初始参数。3.鼠标交互功能的实现在Java3D的环境中进行操作时,系统提供的鼠标旋转操作只能绕三个坐标轴同时旋转,不利于对水稻器官模型的观察。在本系统中,设计鼠标左键拖动实现水稻器官模型绕y轴旋转,鼠标右键拖动对象绕x轴旋转。在JAVA3D的工具类中提供了通过对鼠标的输入进行交互的MouseBehavior类,它定义了其对象所有的公共图2水稻场景结构图根分支节点根转换节点穗轴转换节点谷粒转换节点穗节点茎杆节点叶片节点穗轴节点谷粒节点观察平台BGBGTGBGTGViewBGBGBGBGBGTGTGTGTG叶片外观茎杆几何形状穗轴外观谷粒外观穗轴几何形状叶片几何形状场所分支节点转换节点行为主茎节点茎杆转换节点叶片转换节点虚拟世界茎杆外观谷粒几何形状属性,并初始化了其内部状态以及指定了初始的鼠标行为唤醒条件。当该MouseBehavior的所有唤醒条件被满足时,它调用processStimulus()方法来接收和处理鼠标消息并建立新的唤醒条件。MyMouseRotate类继承自MouseBehavior,并重载了processStimulus()方法。在MyMouseRotate中,定义两个布尔变量booleanLButtonPressed和booleanRButtonPressed来判断鼠标左右键按下标志,默认值为false。在processStimulus()方法中,当鼠标按下和释放时,先判断事件源是左键还是右键,并将相应的属性值更改,在鼠标拖动时通过根据LButtonPressed和RButtonPressed的真假来对在构造方法中传递进来的根转换节点,通过旋转变换矩阵实现绕根转换节点指定轴的旋转。(四)Web中的水稻器官三维可视化从页面左边input框架,选择水稻器官参数输入面板,输入水稻器官形态结构参数数据,可以控制水稻各器官的几何造型。设置完成各个器官的形态结构参数,在右边riceMode框架中即可实时显示Java3D重建的水稻主茎整体模型。同时在riceMode框架中通过拖动鼠标左右键来旋转水稻主茎模型,可观察显示模型的不同侧面。系统模型在IE浏览器中显示的效果如图3所示。(五)结论1.本研究采用Java3D重建了水稻作物的三维模型,并以Applet程序的形式在网上发布,实现了水稻三维模型在异地的平移、旋转、缩放等浏览方式以及参数化水稻器官模型的控制,为水稻植株形态模型的研究提供一个远程三维可视化系统平台。2.利用该系统研究水稻生长过程,可不受距离、时间、季节和天气等环境因素的影响。为进一步进行水稻生长过程模拟、虚拟水稻病虫害以及虚拟育种等研究奠定了基础。3.本研究能够为农业院校的教学、科普教育和远程教育提供多媒体课件和三维可视化系统平台,适用于大学教学、科学技术普及和农业技术推广等,使受教育者能够较好地掌握水稻结构器官生长过程。随着Java3D硬件技术的改进,三维模型技术的发展,虚拟现实技术的研究,这种基于Java的Web3D虚拟作物研究和开发技术将获得更大的发展空间(六)使用说明打开网页就可以运行图3系统运行效果图
本文标题:基于WebD的交互式虚拟水稻器官造型研究
链接地址:https://www.777doc.com/doc-2572805 .html