计算机图形学实验-实验七 三维立方体的旋转.doc_第1页
计算机图形学实验-实验七 三维立方体的旋转.doc_第2页
计算机图形学实验-实验七 三维立方体的旋转.doc_第3页
计算机图形学实验-实验七 三维立方体的旋转.doc_第4页
计算机图形学实验-实验七 三维立方体的旋转.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

贵州大学实验报告学院: 计算机科学与信息学院 专业:软件工程 班级: 102班姓名学号实验组实验时间指导教师成绩实验项目名称实验七 三维立方体的旋转实验目的了解并掌握三维立方体的绘制和显示并通过按键控制其旋转,每次旋转150实验要求根据本实验的特点、要求和具体条件,了解并掌握三维立方体的绘制和显示,并通过按键控制其旋转,每次旋转150,成功编写测试代码进行实验。绘制一个三维立方体。实验原理Java3D在java3D中坐标轴的显示如下所示:Java3D的编程思想显示如下:在实验时,要引入相关的jar包,显示如下所示:实验环境硬件平台:PC机软 件:Windows7平台,eclipse集成开发环境,java编程语言。 Java 3D实验步骤1. 掌握算法原理;2. 依据算法,编写源程序并进行调试;3. 对运行结果进行保存与分析;4. 把源程序以文件的形式提交;5. 按格式书写实验报告。实验内容本次实验的核心代码:控制三维立方体旋转的键盘事件class KeyMonitor extends KeyAdapterpublic void keyPressed(KeyEvent e) switch (e.getKeyCode() case KeyEvent.VK_X:x -= 0.25f;changeIt();break;case KeyEvent.VK_Y:y -= 0.25f;changeIt();break;case KeyEvent.VK_Z:z -= 0.25f;changeIt();break;搭建框架的一些初始化步骤:protected void initial_setup() getContentPane().setLayout(new BorderLayout();/ 得到框架和设置布局GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();/ 得到配置函数Canvas3D canvas3D = new Canvas3D(config);/ 创建3d图形的面板getContentPane().add(Center, canvas3D);/ 把3d图形面板添加到框架上simpleU = new SimpleUniverse(canvas3D);/ 设置3d图形的画布形式rootBranchGroup = new BranchGroup();canvas3D.addKeyListener(new KeyMonitor();/在3d图形的画板上添加监听设置观察的视角和高光等参数:public void addDirectionalLight(Vector3f direction, Color3f color) BoundingSphere bounds = new BoundingSphere();bounds.setRadius(1000d);DirectionalLight lightD = new DirectionalLight(color, direction);lightD.setInfluencingBounds(bounds);rootBranchGroup.addChild(lightD);创建三维正方体的函数:public void addBox(float x, float y, float z, Color3f diffuse, Color3f spec) Appearance app = new Appearance();/ 设置正方体的视角以及绘制参数Material mat = new Material();/ 创建节点mat.setDiffuseColor(diffuse);/ 设置正方体的轮廓颜色和表面颜色mat.setSpecularColor(spec);mat.setShininess(5.0f);/ 超出范围则不显示app.setMaterial(mat);Box box = new Box(x, y, z, app);/ 创建正方体TransformGroup tg = new TransformGroup();/建立变换组tg.addChild(box);/把要变换的物体添加进变换组里rootBranchGroup.addChild(tg);tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);this.tg = tg;旋转角度的实现函数:private void changeIt() Transform3D tf = new Transform3D();/建立变换类Quat4f vector = new Quat4f(x, y, z, 2f);/建立旋转变换方法tf.setRotation(vector);/把旋转方法添加进变换类里tg.setTransform(tf);/把变换类添加进变换组里实验结果说明:因为每次旋转15度,图片变化不明显,所以本次实验的截图是旋转了3次才截的图。(1)运行程序,显示如下所示:(2)点击键盘上的“X”键,让正方体在x轴上进行旋转,每次15度截图显示如下所示:(3)点击键盘上的“Y”键,让正方体在Y轴上进行旋转,每次15度(4)点击键盘上的“Z”键,让正方体在Z轴上进行旋转,每次15度实验总结通过本次实验,让我了解并掌握了三维立方体的旋转,通过编写实验的测试代码进行了原理的验证,在本次试验中,绘制的过程也是遇到了不少的问题,通过查阅相关资料和问同学也得到了解决,收获很大,我觉得实验就是一个检验在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论