欢迎来到天天文库
浏览记录
ID:41695666
大小:147.21 KB
页数:3页
时间:2019-08-30
《基于Web3D的交互式虚拟水稻器官造型研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于Web3D的交互式虚拟水稻主茎模型研究报告(一)引言随着计算机图形学和计算机技术的发展,通过虚拟作物在三维空间中的形态结构及生长发冇过程,以可视化的方式获得作物生长过程中的各参数的动态数据,可更好地帮助人们理解作物的生长发展变化,具冇真实感、可交互操作等特点。虚拟作物的研究在农业科研、教学、牛产、规划、农业资源配置等方血展示了良好的应用前景。焜拟水稻是虚拟作物的一个研究方向,目前国内外研究水稻生理生态模型较多,而H已经建立了较成熟的水稻生理。但从可视化角度出发,在Web网页上研究交互良好的水稻熄拟模型的报道还很少。本文采川Java3D
2、技术,结合Web开发技术在网络页血实现了水稻结构器官形态的三维可视化模拟显示和交互控制,具有较强的真实感,可控性强,为进一步进行水稻和其它作物的虚拟研究提供一种新的思路。木研究以现有的水稻形态结构器官模型为研究起点,探索利川计算机图形学技术和Web技术实现在计算机浏览器上以多和度、交互可控的方式呈现水稻植株形态的三维可视化表达,实现虚拟水稻作物的研究和应川网络化。该项研究是数字农业关键技术的研究基础,对促进我国农业信息化的发展有着重要的意义。(二).开发环境:l.Jdk运行时;2.java运行时至少能支配150M内存(三)JAVA3D重建
3、水稻器官模型Java3D是SUN公司推出的、而向Internet的三维动画程序语言。通过在网页上插入用Java3D编写的Applet,就能让•浏览网页的用户感受到逼真的三维动画效果。Java3D采用基丁•场最图(SceneGraph)的编程模型,提供了人量Java3D类,开发者可以通过实例化这些类创建各种Java3D对象。1水稻结构器官模型水稻主茎地而形态结构主要由水稻叶片、叶鞘、茎和稻穗等器官构成,笔者通过对水稻叶、茎、叶鞘和稻穗的观测研究,构建了基于器官形态特征参数的精确几何造型算法,用于各器官的几何建模,水稻主茎地面各个结构器官模型
4、如图1所示。(a)叶片(b)茎(c)叶鞘(d)穗轴(e)谷粒图1水稻结构器官形态模型2.水稻模型场景结构视图Java3D采川场景图(SceneGraph)作为数据结构。场景图属于一种称为有向无环图的类似于树的数据结构,它是对系统中所有图形対象及属性的完整定义,并和用于显示场景绘制图像的AWT组件相关联。场景图一•般可分为:观察分支(川来建立场景视图)和内容分支(用来表示虚拟世界的图形内容)。内容分支以一个BranchGroup节点为根,其它的节点可以附属到此根节点上来完成熄拟世界的构造。其pShape3D节点屮存放三维形体儿何信息及其外观
5、属性。形体的位置山TransformGroup节点来设定。有了这些基本信息,就可以构建一•个三维场景图了。由于在Java3D屮只有BranchGroup节点能被其父节点更改,为了提高水稻结构器官显示的交互可控性,在创建水稻模型时,为毎个水稻器官模型首先创建了一个BranchGroup结点,再创建TransformGroup子节点,最后生成外形和几何形状,其场景结构模型视图构建如图2所示。图2水稻场景结构图(三)在页面中实现交互控制1.Java3D嵌入页面Java3D一个最大的特性是可以使用Applet作为显示容器,在Applet中显示3D
6、图形和在网页文件中(HTML/JavaScript)嵌入该Applet,从而实现三维Web的可视化显示。但由于Java3D是对java的扩展,它的applet恢入到网页时盍要做一个特殊的转换,变成以方式定义的页面,这个转换需耍用到sun捉供的HtmlConverter工具來完成.本系统釆用JavaScript脚本来控制与Java3D程序的参数传递,这样就避免了Jsp参数传递时对网页的刷新而引起的Java3D程序的重新载入。为了网页的美观和实用,在网贝设计时嵌入了两个ifram帧框架,左框架input框架,用來
7、输入水稻器官形态结构参数数据,右框架为riceModefls架,川來显示Java3D重建的水稻器官模型。2.1叩ut框架与riceMode框架的参数传递hiput框架对object的控制可以通过帧檢架间的引用,然后通过dom对彖访问object实例,从而实现对java3d程序的参数传递和控制。在js和java中变量的传递,山于js采用弱类型的变量形式,可以认为js中的变量都为String类型,而只有使川和赋值时才转换成相应的数据类型,这样在Java3D中可以通过对String类型的转化及将其它的类型转化为String來实现jsflljav
8、a中变量的传递。对丁-返回值的控制,由于不同浏览器对js函数返回值的要求不同,返冋数组经常在一些浏览器中无法显示,所以这里我们将Java3D中所有的返冋值都拼接成一个字符串,在js中通过对返冋
此文档下载收益归作者所有