欢迎来到天天文库
浏览记录
ID:24911113
大小:250.50 KB
页数:7页
时间:2018-11-17
《基于java3d的摆钟设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、目录设计的需求分析2实际题目2要解决的问题2问题的功能说明2软件系统结构2Java3D功能描述2场景图描述3用户界面3关键技术4三维物体建模技术...................................................................................................................5程序运行结果6摆动状态6结论76设计的需求分析实际题目本课题的题目为:基于Java3D的摆钟设计要解决的问题本课题的核心是解决钟摆运动的问题。但是相对于核心代码的实现,基础场景的布置,三角形面片
2、的设计以及纹理的映射等也是十分重要的,下面将详细说明本课题需要解决的问题:l背景图映射问题。l摆钟各部分运动的实现问题。l纹理映射的实现问题。l环境光设置问题。问题的功能说明(1)背景图映射问题。一般的场景中,我们只是通过简单的调用方法对背景进行单一着色,比如:Backgroundbg=newBackground(bgColor);这样的背景会略显单调,所以,本科中首先要解决的问题是在场景背景中映射图片,使得背景更加生动且逼真。(2)摆钟各部分运动的实现。本场景中,实现的主要过程是钟摆的周期性摆动以及各指针的正常旋转。(3)纹理映射的实现。本课题实现的场景中,表盘
3、以及背景墙需要采用不同的纹理映射,实现不同的效果,其中背景墙需要特定的花纹,而表盘则采用已设计好的图案。(4)聚光灯效果。场景中添加环境光束,使得物体呈现不同的视觉效果,软件系统结构Java3D功能描述本课题使用的核心技术是Java3D。Java3D是Java语言在三维图形领域的扩展,是一组应用编程接口(API)。利用Java3D提供的API,编程人员可以编写出相对较多的逼真且操作性强的一些三维图像或者游戏。其功能详细介绍如下:·生成简单或复杂的形体(也可以调用现有的三维形体)·使形体具有颜色、透明效果、贴图。·在三维环境中生成灯光、移动灯光。·具有行为的处理判断
4、能力(键盘、鼠标、定时等)。·生成雾、背景、声音。·使形体变形、移动、生成三维动画。6·编写非常复杂的应用程序,用于各种领域如VR(虚拟现实)。场景图描述Java3D场景图结构。Java3D采用场景结构图的场景组织模式。场景图是一种DAG图,类似于一种属性结构,即一些具有方向性的不对称图形组成的树状结构。我们在一个Java3D应用程序看到的逼真三维场景从程序的角度看来,实际就是由Java3D定义的一系列的对象,这些对象不是杂乱无序,对象之间也不是毫无关系。如果想让三维图像正常显示,必须在这两点上遵循Java3D场景图的规定。如下图1,Java3D场景图的树结构由各
5、种各样的对象组成,其中,场景图中线和线的交汇点称为节点(Node),这些节点都是Java3D类的实例(InstanceofClass),节点之间的线表示各个实例之间的关系。图1:Java3D场景图本课题的场景图中,按照上述的Java3D场景图的描述,进行场景设置,其中,VirtualUniverse采用默认值。并且没有采用观察者模式。用户界面如下图2所示,为用户的初始化界面,由于开始状态是动态效果图,本图只是某一时刻的截图。6图2用户界面图关键技术三维物体建模技术//时针设计Appearanceap=newAppearance();ap.setMaterial(n
6、ewMaterial());Shape3DshapeHour=newShape3D(createGeometry(0.4,0.02,0.02),ap);TransformGroupspinHour=newTransformGroup();spinHour.addChild(shapeHour);6spinHour.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);root.addChild(spinHour);//分针设计Shape3DshapeMin=newShape3D(createGeometry(0.5
7、,0.02,0.02),ap);TransformGroupspinMin=newTransformGroup();spinMin.addChild(shapeMin);spinMin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);root.addChild(spinMin);//秒针设计Shape3DshapeSec=newShape3D(createGeometry(0.5,0.01,0.01),ap);TransformGroupspinSec=newTransformGroup();spinSec.
8、addCh
此文档下载收益归作者所有