MATLAB虚拟现实技术实现飞机绕大楼

上传人:jin****ng 文档编号:110345479 上传时间:2022-06-18 格式:DOC 页数:28 大小:1.29MB
收藏 版权申诉 举报 下载
MATLAB虚拟现实技术实现飞机绕大楼_第1页
第1页 / 共28页
MATLAB虚拟现实技术实现飞机绕大楼_第2页
第2页 / 共28页
MATLAB虚拟现实技术实现飞机绕大楼_第3页
第3页 / 共28页
资源描述:

《MATLAB虚拟现实技术实现飞机绕大楼》由会员分享,可在线阅读,更多相关《MATLAB虚拟现实技术实现飞机绕大楼(28页珍藏版)》请在装配图网上搜索。

1、MATLAB 虚拟现实 VR 程序编写摘要MATLAB 提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设 计、便捷的与其他程序和语言接口的功能。其语句书写简单、功能强大,而且提供很多面 向解决应用问题的工具箱函数,是当今国际上科学界 (尤其是自动控制领域) 最具影响 力、也是最有活力的软件。虚拟现实技术也因其在各个领域的多方面应用已经同网络、多 媒体并称为 21 世纪三大最具有前景的应用之一,是最近几年来国内外科技界关注的一大 热点。随着虚拟现实技术的发展,MATLAB也在日新月异的发展,不断完善功能,推出的虚 拟现实工具箱就是与虚拟现实技术的接轨。通过对MATLAB虚拟现

2、实工具箱的研究,使用 V-Realm Builder 构建虚拟世界,在 MATLAB 环境下对虚拟对象进行简单的编程,来实现飞 机绕大楼飞行的虚拟现实演示演示结果充分说明了 MATLAB的强大功能可以使具体应用问 题的解决不必依靠复杂的编程即可实现,体现了虚拟现实技术的交互性及重要意义。关键词:MATLAB虚拟现实VRMLABSTRACTMATLAB provides the formidable science operation, nimble programming flow, high grade graph visualization and Interface design, co

3、nvenient functions with other procedures and language connection. MATLAB whose sentence writes simply but have powerful use, provides many tool case functions being geared to the needs of resolving application problems, It is now the most influence, and also the active software in scientific circles

4、 in international (particularly in automatic control domain). Virtual Reality technology is one of the most promising applications in 21 centuries with network and multi-media. Because of many applications in each field, it becomes a big hot spot which domestic and foreign scientific and technical c

5、ircles attention for recent several years. With the development of Virtual Reality technology, MATLAB perfects a function unceasingly also in advancing with times, the Virtual Reality toolbox debuting is a meeting track with Virtual Reality technology .By the research to MATLAB Virtual Reality toolb

6、ox, learn using V-Realm Builder to structure the suppositional world, suppositional real carry out the simple programming on suppositional object, coming to realize an aircraft winding building flying under the environment in MATLAB demonstrates. Demonstrate result having explained that The MATLAB f

7、ormidable function might cause the solution to the concrete application questions not to need to depend upon the complex programming then to realize, it has manifested the virtual reality technology interactive and the important meanings.Key words:MATLAB Virtual Reality VRML目录一 前言1二 虚拟现实 22.1 虚拟现实简介

8、 22.2 虚拟现实技术的发展意义 22.3 VR 虚拟现实技术的应用32.4 虚拟现实技术主要发展动向 3三 MATLAB 介绍 43.1 MATLAB 的概况 43.2 MATLAB 产生的历史背景 43.3 MATLAB 的语言特点 53.5 MATLAB 虚拟现实工具箱的安装与设置 63.6 MATLAB 虚拟现实语言-VRML 简介63.7 MATLAB虚拟现实工具箱相关函数介绍7四 飞机绕大楼飞行的模拟实例74.1 构建飞机绕大楼的虚拟世界 7用 V-realm Builder建立虚拟世界84.1.2 添加对象94.1.3 对所构造虚拟世界的对象的编程1 0 4.2飞机飞行轨迹的设

9、想1 04.3在MATLAB下导入虚拟现实文件24.3.1 飞机飞行姿态问题的考虑1 34.4 仿真实现飞机绕大楼飞行1 4五 结论17 谢辞18 参考文献19 附录20前言虚拟现实 ,英文名为 Virtual Reality ,简称 VR 技术。它与传统的模拟技术完全 不同,是将模拟环境、视景系统和仿真系统合三为一,把操作者与计算机生成的三维虚拟 环境连结在一起。操作者通过传感器装置与虚拟环境交互作用,可获得视觉、听觉、触觉 等多种感知,并按照自己的意愿去改变“不随心”的虚拟环境。作为一项尖端科技,虚拟 现实集成了计算机图形技术、计算机仿真技术、人工智能、传感技术、显示技术、网络并 行处理等

10、技术的最新发展成果,是一种由计算机生成的高技术模拟系统。这种技术的特点在于计算机产生一种人为虚拟的环境,这种虚拟的环境是通过计算机 图形构成的三维数字模型,并编制到计算机中去生成一个以视觉感受为主,也包括听觉、 触觉的综合可感知的人工环境,从而使得在视觉上产生一种沉浸于这个环境的感觉,可以 直接观察、操作、触摸、检测周围环境及事物的内在变化,并能与之发生“交互”作用, 使人和计算机很好地“融为一体”,给人一种“身临其境”的感觉。在国外,美国是在 VR 技术方面最具权威性的国家。利用虚拟现实技术设计波音 777 获得成功,是近几年来一件引起科技界瞩目的伟大成果。日本在建立大规模 VR 知识库和

11、虚拟现实的游戏方面做出了很大的成就。欧洲一些国家也有重要成果。在我国 VR 技术的发展起步于90 年代初,目前已有多所研究中心和大学进行了这方面 的研究。在医学上,我国的“虚拟人”具有标准的人体选取和尸体处理办法,精密的人体 切片密度和我国首创的人体结构染色技术。这使得我国的“虚拟人”研究已走在世界前列。 北京科技大学钟延炯教授研制的 VR-4 的汽车驾驶模拟器是我国虚拟现实技术产品的典型 代表。虚拟现实技术的应用于2006年获得了重大突破,一款名为Second Life的网络游戏, 以虚拟现实技术(Virtual Reality Technology)所构建的高度拟真体验,完全颠覆了人 们对

12、互联网的想象。截止2006年12月,已经有300万人生活在这一虚拟世界中,且以每 月20万名用户的速度增长,并成功吸引了全世界主流媒体的热捧。人们已经发现,一个 完全逼真的“虚拟世界”(Met averse)已经进入我们的生活,一种非同寻常的变化正在 发生。这次设计要完成的是通过对虚拟现实技术的了解,应用 MATLAB 的虚拟现实工具箱, 来完成简单的编程,实现飞机绕大楼飞行的虚拟现实场景演示。本次设计需要解决的问题 主要是飞机的飞行轨迹和飞行中飞机的姿态。虽然本次设计只是虚拟现实技术与 MATLAB 结合的简单应用,但体现了 MATLAB 与时俱进的强大功能和虚拟现实技术的重要推广价值。二

13、虚拟现实2.1 虚拟现实简介虚拟现实,也称虚拟实境或灵境,是一种可以创建和体验虚拟世界的计算机系统,它 利用计算机技术生成一个逼真的、具有视、听、触等多种感知的虚拟环境,用户通过使用 各种交互设备,同虚拟环境中的实体相互作用,使之产生身临其境感觉的交互式视景仿真 和信息交流,是一种先进的数字化人机接口技术。虚拟现实的三大特点是:沉浸度,交互 性,想象力。其中实质性特征的就是交互性。因为虚拟现实技术是一种全新的人机交互方 式,不是简单的图形显示,而是动态的三维立体空间 ,用户不仅可以看到虚拟现实里的对 象,还可以操作其中的一些部分随人类的意志运动,让用户感受到真正的参与和产生满足 感。自从虚拟现

14、实技术诞生以来,它已经在军事模拟、先进制造、城市规划 /地理信息系 统、医学生物等领域中显示出巨大的经济、军事和社会效益,与网络、多媒体并称为 21 世纪最具应用前景的三大技术。2.2 虚拟现实技术的发展意义现在,迅速发展的计算机硬件、软件系统使得基于大型数据集合的声音和图像的实时 动画制作成为可能,越来越多的新颖、实用的输入输出设备相继进入市场,而人机交互系 统的设计也在不断创新,这些都为虚拟现实系统的发展打下了良好的基础。从萌芽到今天 的日渐成熟,虚拟现实技术的发展也经历了风风雨雨。它在各个方面的应用日益改变着人 类的工作、生活和学习环境,使得数据与程序的交流更为简单和广泛。但到目前为止这

15、些 还只是初步应用,相信在以后虚拟现实技术会得到更好的发展,为人类社会做出更大的贡 古I、.献。展望未来 5 年虚拟现实将与人类更加贴近,给予虚拟现实的服务项目日趋多元化。而 在虚拟现实的应用领域,基于互联网的应用将爆发前所未有的爆发力。而虚拟现实融合语 音智能将为虚拟现实的网络平台插上飞翔的翅膀。2.3 虚拟现实的各种应用随着虚拟现实技术的发展,它的应用领域也得到了很大的扩展,已经不仅仅是应用于 游戏和主题公园方面,在医学,建筑,军事,航空航天,网络教学及电影制作等方面也有 了重要的应用。2.3.1 虚拟现实在现代医学上的应用在医学上,我国的“虚拟人”具有标准的人体选取和尸体处理办法,精密的

16、人体切片 密度和我国首创的人体结构染色技术。这使得我国的“虚拟人”研究已走在世界前列。医 生可以在虚拟人身上作手术获得经验,试用新药,还可以将其放在危险的核、生化武器试 验现场获得对人体有害的数据。2.3.2 虚拟现实在航空航天中的应用在航空方面,虚拟现实可以让宇航员在上太空之前进行逼真的太空操作和太空行走, 为以后真正的太空行动积累经验。在航天方面,它为飞行员的训练提供帮助,有效地防止 了空难的发生。2.3.3 虚拟现实在军事领域的应用VR 技术就是诞生于军事应用,在军事应用方面很多,包括:模拟战场,模拟操作,模 拟驾驶,模拟装配等等。都需要通过 VR 技术来实现。而且在相关军事工作汇报中也

17、会有 VR 技术的支持。2.3.4 虚拟现实在建筑与规划中的应用在城市规划中经常会用到VR技术,用VR技术不仅能十分直观的表现虚拟的城市环境, 而且能很好的模拟各种天气情况下的城市,而且可以一目了然 的了解排水系统,供电系 统,道路交通,沟渠湖泊等等。而且能模拟飓风、火灾、水灾、地震等自然灾害的突发情 况。对于政府在城市规划的工作中起到了举足轻重 的作用。2.3.5 虚拟现实在网络教学中的应用“虚拟学校”系统的开发,可以让学习者在网络构建的虚拟学校中自由活动,与其他 虚拟学习者进行知识的交流,可以在图书馆中阅读,也可以随意选择自己喜欢的课程。“虚 拟学校”可以使学习者从多角度了解所学习的知识和

18、技能,提高学习的积极性。 2.4虚拟现实技术主要发展动向在未来的 VR 技术的主要发展动向主要是以下几个领域:城市规划:系统用于展示城市规划、宣传城市建设、提升城市形象。系统根据城市的 当前状况和对城市的未来规划,将城市的过去、现在和将来任意时间的情况展示在规划设 计者、政府决策者、投资开发者和普通市民面前。大型工程漫游:展示各种拟建设的工程项目,为国际和国内工程设计投标建立多种层 次、细节丰富的虚拟模型,真实再现工程竣工后的情况。名胜古迹虚拟旅游:展现名胜古迹的景点,可以任意选择路径遨游各景点,乐趣无穷。 虚拟房地产推销:建立建造拟建的楼盘,将未来的美妙蓝图提前变成眼前的现实。通 过简单操作

19、,可以选择任意路径进入拟建楼盘的任意位置,体验空间对人自身的尺度感。 配以相关的图片、文字、声音,更显生动。数字化酒店展示系统:实时浏览每套客房的三维虚拟场景;通过菜单选项可以进行不 同客房的切换演示;交互式客房服务信息 。在教育领域:在教育领域,虚拟现实技术具有广泛的作用和影响。亲身去经历、亲身 去感受比空洞抽象的说教更具说服力。字节艺术目前为城市规划、市政建设、房产开发、文物古迹、室内装修、工业仿真及 虚拟演播室等项目提供专业的虚拟现实制作服务。三 MATLAB 介绍3.1 MATLAB 的概况MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,

20、 它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,F0RTRAN等语言完相同的事情简捷得多.当前流行的 MATLAB 5.3/Simulink 3.0 包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包功能工具包用来扩充MATLAB 的符号计算,可视化建模仿真,文字处理及实时控制等功能. 学科工具包是专业性比 较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.开放性使MATLAB广受

21、用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都 是可读可修改的文件 , 用户通过对源程序的修改或加入自己编写程序构造新的专用工具 包.3.2 MATLAB 产生的历史背景在70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用 EISPACK 和 LINPACK 的 FORTRAN 子程序库 .EISPACK 是特征值求解的 FOETRAN 程序 库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.在MATLAB进入市场前,国际上的许多软件包都是直接以FORTRANC语言等编程语言开 发的。这种软件的缺点是使用面窄,

22、接口简陋,程序结构不开放以及没有标准的基库,很 难适应各学科的最新发展,因而很难推广o MATLAB的出现,为各国科学家开发学科软件提 供了新的基础。在MATLAB问世不久的80年代中期,原先控制领域里的一些软件包纷纷被 淘汰或在 MATLAB 上重建。1992 年推出的 MATLAB 4.0版告别了 DOS 版,具有划时代的重要意义。 1993 年又推 出了其微机版。 1994 年推出的 4.2 版在图形界面设计上提供了新方法。 1997 年推出的 MATLAB 5.0版对工具箱和Sinmulink做了较大的增强。1999年初推出的MATLAB 5.3版 在很多方面又进一步改进了 MATLA

23、B 的语言功能。 2000 年推出 MATLAB 6.0 正式版 (Release 12),在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的 改进。 2002 年 MATLAB 7.0(Release 13)推出,主要在图形设计方面做出改进。时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种 工作平台的功能强大大大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校, MATLAB 已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动 态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌

24、 握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体 问题。在国内,特别是工程界,MATLAB 定会盛行起来。可以说,无论你从事工程方面的 哪个学科,都能在 MATLAB 里找到合适的功能。3.3MATLAB 的语言特点 一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特 点,MATLAB的特点主要有以下几点:(1) 强大的数值运算功能,使矩阵操作变得轻而易举。(2) 编写程序时语句简单,但功能强大。所用的时间是用Fortran或C的几分之一, 编程速率大大提高。(3) 具有丰富的图形处理功能,例如绘制三维曲线的plot函数

25、。(4) 提供了一系列的面向解决应用问题的工具箱函数,例如小波分析,神经网络,最 优化和虚拟现实工具箱。(5) MATLAB 的易扩展性允许用户自己添加所需要的自定义工具箱函数供自己和同伴 的使用。3.4 MATLAB 应用中应注意的事项(1) MATLAB 的变量名只能由字母、数字和下划线组成,且必须以字母开头。另外 MATLAB 能够区分大小写。(2) MATLAB的程序文件均以.m为后缀,在运行程序前一定要对此文件进行set path 搜索路径操作。(3) MATLAB 中的三角函数是面向矩阵中的元素操作的,因此单位用弧度,必要时要进 行角度与弧度的转化。(4) 在编程过程中, for

26、语句实现循环通常要比 while 语句简单、直观。在MATLAB中选择help / MATLAB help菜单项,可以在遇到难题时对里面的相类似demo进 行学习。3.5 MATLAB 虚拟现实工具箱的安装与设置 以前虽然有一些其他版本的存在,但虚拟现实工具箱是随着 MATLAB 6.1 版本推出而 正式推出的,在MATLAB 7.0中变得更加完善。虚拟现实工具箱的安装:安装MATLAB时,若安装列表中有Virtual Reality Toolbox 选项,则可以在列表中选中此项直接安装。如果之前没有安装此工具箱,则需重新启动 MATLAB安装程序,输入允许安装该工具箱的PLP,选择虚拟现实工

27、具箱的安装选项,从而 完成虚拟现实工具箱的安装。VRML预览器安装 在MATLAB环境中的Workspace中可通过以下命令建立VRML预览器。 vrinstall - install viewerDo you want to use OpenGL or Ditect3d acceleration? (o/d)从上面的提示中可任选一项,选择o或d表示选择的是OpenGL加速或Ditect3d加速 方式,会出现 blaxxun Contact viewer 的安装程序,根据弹出的对话框的提示进行全部 的预览器程序安装,安装完成后会有如下的提示: Starting viewer installat

28、ion.Done.VRML 程序编辑器安装:虚拟现实工具箱提供了 V-Realm Builder 2.0版作为VRML程序编辑器,安装方法为 在 MATLAB 命令窗口输入以下命令: vrinstall -install editor可用以下命令来检验上述安装是否成功 Vrinstall -checkVRML viewer:installedVRML editor:installed应注意,在 MATLAB 环境下执行 Vrinstall 命令后面要加空格,然后跟所要执行 的命令,否则会出错。3.6 VRML 简介VRML 语言是第二代虚拟现实建模语言,是一种三维造型和渲染的图形描述语言,它把

29、 “虚拟世界”看作一个“场景”,场景中的一切看作“对象”对对象的描述构成了.wrl文 件,在MATLAB的虚拟现实工具箱中就是主要采用这种语言来对虚拟现实进行描述。注意: 它在描述三维空间时,其坐标框架满足右手准则,这一点与常用坐标系不同。3.7 MATLAB 虚拟现实工具箱相关函数介绍V-realm Builder 2.0是编辑VRML的可视化工具,它可以为用户提供一些搭建虚拟现 实的所需要的场景和素材。因为在安装虚拟现实工具箱时它会被安装到工具箱下的 vrealmprogram 目录下,可直接打开其中的 vrbuild2.exe 文件。要得到所需的虚拟现实 图像,应首先在 V-realm

30、Builder 中建立起需要的 VRML 语言文件。在得到静态图像后, 要使得静态图形动起来,用户可以直接用 VRML 语言编程来实现,但这对用户掌握该语言 编程的技巧要求颇高,因此对一般用户不是一件简单的事。MATLAB的虚拟现实工具箱为用户提供了一系列简单的函数,这些函数可以对*.wrl文 件中描述的对象的属性直接操作,类似于MATLAB对自己对象操作一样方便。在MATLAB下 调入并获取整个虚拟现实文件和各个对象(节点)的属性可以通过以下命令实现:(1) 打开虚拟现实文件* .wrl用vrword ()函数实现。例如,用此函数可将虚拟现实文 件myvr1.wrl中描述的世界的句柄赋给my

31、word变量。 myworld=vrworld(myvr1.wrl);(2) 导入虚拟现实世界用open ()命令实现,显示虚拟现实世界用view()命令来实现。 open(myword); %用世界句柄导入该世界View(myword); %打开显示界面,显示该世界(3) 在导入虚拟现实世界后,用vrnode ()函数可获得各个节点的句柄,set()函数用于 修改各个节点的属性。四 飞机绕大楼飞行的模拟实例4.1 构建飞机绕大楼的虚拟世界4.1.1 用 V-realm Builder 建立虚拟世界要实现飞机绕摩天大楼飞行的实景演示,应首先在V-realm Builder中建立起需要的VRML

32、 语言文件。单击File/New打开一个新的文件,点击“背景”按钮为图形添加背景,在默认情况下,背景颜色是渐变的,分为天和地两个部分,如图4-1 所示。同时将建立起一个 名为 Background 的对象,单击 Background 左边的加号,将展开有关背景对象的属性,双 击所需修改的属性,系统将弹出一个对话框,用户可根据自己的需要对属性进行设置, 如图 4-2 所示。图 4-1 V-realm Builder 2.0 添加背景的结果- * New World- Background+ LOl groundAngle-groundColor回0回1属性颜色设置图 4-24.1.2 添加对象V

33、-realm Builder 2.0 软件提供了大量的对象添加功能,除了在界面第一行工具栏上可看 到的长方体、圆锥体、圆柱体等,还提供了很多的现成的对象。对此可以选择 LibraryImpor t from/Objec ts library菜单项,如图4-3(a),得到各种各样的对象库。(a) Libraray 菜单(b) 对象选择对话框图 4-3 添加对象设置可以从建筑组(Architecture(building)中选择对象摩天大楼(skyscraper),如图4-3(b), 用左键将之拖动到虚拟现实编辑窗口中。此时在总的框架中加入了一个对象,标为 Transform,将其改写为skysc

34、raper。由于直接建立起来的对象尺寸过大,显示起来有些 问题,需要对其大小进行设置。对此可以双击 skyscraper 标识下的 scale 栏目,则弹出 如图4-4(a)所示的对话框,可以通过减小各坐标轴的标度来使得整个图形可读。另外还可 以双击该对象的center栏目修改对象所在中心的选项,则弹出如图4-4(b)所示的对话框。(a) scale 设置对话框(b) center 设置对话框图 4-4 对象属性设置对话框框图 4-4 对象属性设置对话框同样,可以从飞行交通工具组(Transpor tat ion (Air)中选择Boeing 737对象, 此时在总的框架中又加入了一个对象,标

35、为Transform,将其改写为plane,直接建立起 来的对象依然存在着显示问题,需要对其大小进行设置。根据所需要的环境素材要求,设置 skyscraper 对象的 center 属性4 个参数为(0, 0, -9, 0.1),其 scale 属性为(0.1, 0.28, 0.1, 0.1),设置 plane 对象的 center 属性 4 个参 数为(-4.7, -0.6, 1, 0.1),其 scale 属性为(0.15, 0.15, 0.15, 0.1) ,得到的虚拟 现实素材如图 4-5 所示,将其保存为 myvr1.wrl 文件(保存在 Work 文件夹中以便以后调 用)。至此得到

36、的是由V-realm Builder软件直接绘出的静态图形。Edit田BI.EuJQ二Vi EtililVReal Builder 20 -NodesLibr-ari esMani pill at or s Mo de WirLdow Help图 4-5 构造出的虚拟现实世界文件根据所需要的环境素材要求,设置 skyscraper 对象的 center 属性 4 个参数为(0,0,-9,0.1),其 scale 属性为(0.1,0.28,0.1,0.1), 设置 plane 对象的 center 属性 4 个参 数为(-4.7,-0.6,1,0.1),其 scale 属性为(0.15,0.15

37、,0.15,0.1),得到的虚拟 现实素材如图 4-5 所示,将其保存为 myvr1.wrl 文件(保存在 Work 文件夹中以便以后调 用)。至此得到的是由 V-realm Builder 软件直接绘出的静态图形。傷 V-Real Builder 2 0 -I墮旧I制聲II團 剖eI制制證|LLLilgJzB:斤竝妊爭盅ilEdi + View NodesLi br-ar 1 es Marn pul:mt cr s.| im s a b|b_e图 4-5 构造出的虚拟现实世界文件此得到的是由 V-realm Builder 软件直接绘出的静态图形。BBuilder 2. 0: Iatlab6

38、. 5toolboxvrvrealBprograAvorldsf.Mode Window Help国旧|尿|刮唱|團 恶91唧制翎.1鑿|.|创织D |Q|囲S0|阍I.! |m is L-: oo|eNo de s Li br-ai- i esEdi t Vi ew图 4-5 构造出的虚拟现实世界文件4.1.3 对所构造虚拟世界的对象的编程(1) 用vrword()函数可将虚拟现实文件myvrl.wrl中描述的世界的句柄赋给myword变量。 myworld=vrworld(myvr1.wrl);(2) 导入虚拟现实世界用open ()命令实现,显示虚拟现实世界用view()命令来实现。 o

39、pen(myword); %用世界句柄导入该世界界的对象的编程(1) 用vrword()函数可将虚拟现实文件myvrl.wrl中描述的世界的句柄赋给myword变量。 myworld=vrworld(myvr1.wrl);(2) 导入虚拟现实世界用open ()命令实现,显示虚拟现实世界用view()命令来实现。 open(myword); %用世界句柄导入该世界 myworld=vrworld(myvr1.wrl);(2) 导入虚拟现实世界用open ()命令实现,显示虚拟现实世界用view()命令来实现。 open(myword); %用世界句柄导入该世界。 open(myword); %

40、用世界句柄导入该世界View(myword); %打开显示界面,显示该世界(3) 在导入虚拟现实世界后,用vrnode ()函数获得各个节点的句柄,用set()函数修改各 个节点的属性。%打开显示界面,显示该世界(3) 在导入虚拟现实世界后,用vrnode ()函数获得各个节点的句柄,用set()函数修改各 个节点的属性。4.2 飞机飞行轨迹的设想考虑到飞机起飞到绕大楼旋转飞行的实际情况,可以画出飞机飞行示意图,如图 4-6所示。根据前面建立起来的虚拟现实文件myvrl.wrl,假定飞机从初始位置开始以摩天大楼 为中心按上升的旋转函数飞行,如图3-7所示。已知飞机起始点(-4.7, -0.6,

41、 1),圆心 位置(0, 0, -9),假设飞机飞行轨迹为x=11cos(t+118), y=-0.6+0.1t, z=-9+11sin(t+118) 其中参变量t e (0,360 )o用以下命令可以绘制出飞机飞行轨迹的三维立体图,如图 4-7 所示,注意在 MATLAB 下计算正余弦函数时需要进行弧度变换。 t=0:.1:2*pi; t0=118*pi/180; x=11*cos(t+t0);y=-0.6+0.1*t; z=-9+11*sin(t+t0);plot3(x,z,y),grid,set(gca,box,off) set(gca,xdir,reverse,ydir,reverse

42、) %常规坐标的 x,y 轴交换 view(-67.5,52)%该观测值为MATLAB的缺省视点位置图 4-7 飞机飞行轨迹的三维立体图4.3 导入虚拟现实文件用以下的命令可以在MATLAB下导入之前建立的虚拟现实文件myvrl.wrl,并将其显示 出来。其中运行到view()函数时,将打开一个显示界面,如图4-8所示,该窗口将myvrl.wrl 文件中描述的静态图形显示出来,该界面下有一个控制工具,可以由此调节图形的大小和 观察角度。 myworld=vrworld(myvr1.wrl);open(myworld); view(myworld);plane=vrnode(myworld,pl

43、ane); %获得飞机对象的句柄set (plane) %显示某一对象(本句中对象为plane)的所有可设定的属性名称及其 可能的取值4.3.1 飞机飞行姿态的考虑 在飞机绕大楼飞行的过程中除了要考虑飞机的运动轨迹,还要考虑的一个要点就是飞 机的飞行姿态,这也是其中的难点。在获得飞机对象的句柄后,利用set()函数修改飞机 的属性,其中重要的有两个:一是 center 属性,它用来设置飞机的位置;二是 rotation 属性,它用来表示飞机的飞行方向。在只考虑飞机位置,而不考虑飞机本身方向的情况下,可用以下命令来实现飞机绕大 楼飞行,其原理是在飞机的运动轨迹中取一系列的坐标点(xi,yi,zi

44、)执行循环,再循环 中不断更新飞机的坐标位置点,而后给出 0.05 秒的延迟。 for i=1:length(x) %循环开始 setfield(plane,center,x(i),y(i),z(i);vrdrawnow;% 屏幕刷新命令pause(0.05);% 延时 0.05send 程序执行后,感官上的却可以感觉到飞机真的在绕大楼飞行,但这种飞行是有缺陷的, 因为飞机在飞行过程中本身方向不变化,只是进行平移,得到的虚拟效果并不十分理想。 如果想让飞机本身也发生变化,机头方向沿着飞行轨迹,就要对其 rotation 属性进行设 置。忽略飞机在y轴上的位移,可以取x和z轴变化率的反正切为飞机

45、的机头方向。以下 命令可实现上述效果: v(1:3)=0;1;0; %标明按 y 轴旋转for i=1:length(x)-1a1=x(i+1)-x(i);c1=z(i+1)-z(i); v(4)=atan2(a1,c1); % 设置旋转角度 setfield(plane,rotation,v,center,x(i),y(i),z(i); vrdrawnow; % 屏幕刷新命令pause(0.05);end 这样的设置依然是近似的,但显示效果已有很大的改善。已经能够实现飞机绕大楼的 飞行演示。4.4 仿真实现飞机绕大楼飞行Simulink 是一个用来对动态系统进行建模、仿真和分析的软件包 ,S

46、imulink 为用户提 供了用方框图进行建模的图形接口,采用这种结构画模型就像用笔和纸来画一样容易。在 Simulink 的工具箱模块组中 , 有一个虚拟现实模块组,双击该模块组,会得到如图4-9所示的内容。其中,虚拟现实输入源模块(VR Source),可以用于从虚拟现实文件中 读取信息。虚拟现实输出模块(VR Sink),可以接受Simulink信号,结果以虚拟现实的 形式显示出来。打开个空模块,将得到如图 4-10 所示的对话框。图 4-10 虚拟现实输出模块对话框在 source file( 关联文件 ) 中点击 Browse 选择 myvr1.wrl 的路径,点击 OK 。在双击

47、模块组,点击 View 按钮,即可导入虚拟现实的图形显示。点击 Apply 按钮,则在 VRML tree 列表中显示出全部节点,点击 plane 左边的+号,列出该节点的所有属性。采取前面同样 的设计思路,需要修改的属性为center和rotation,所以选中这两个属性,单击OK按钮, 则在VR Sink上设置相对应的两个输入端子。其他需要的控件在Simulink模块组中查找, 进行相应的设置(右键可改变控件参数),并用连线连接。由此可生成仿真模块框图,如 图 4-11 所示。图 4-11 飞机绕大楼飞行仿真模块框图其中,第一个输入为飞机的平移,它表示虚拟世界中飞机的位置。这个位置由三个坐

48、 标 x 、y 、z 组成,相关的矢量必须由三个元素。第二个输入的是飞机的旋转,它通过一个 四元素矢量定义,其中前三个元素定义旋转的坐标轴,例如010即表示围绕 y 轴旋转。 另一个元素定义围绕 y 轴旋转的角度。点击 Simulation/start 菜单,则启动仿真,在虚拟现实显示窗口可清晰地看到飞机 绕大楼旋转上升的飞行,此演示效果与运行程序的效果一样。相比较之下,这样的处理比 MATLAB 下的调用更为简单。五 结论本次毕业设计利用 MATLAB 虚拟现实工具箱,编写简单程序来演示飞机绕大楼飞行的 虚拟现实场景。为了使设计成功实现,我搜集了大量虚拟现实的相关资料,对虚拟现实技 术、VR

49、语言等有了更深一步的了解。同时,由于本次设计是在MATLAB虚拟现实工具箱下 实现的,所以需要对MATLAB环境进一步熟悉和掌握,通过MATLAB虚拟现实工具箱建立的 虚拟场景仿真系统,形象地反映了飞机绕大楼的飞行情况和轨迹,不仅省去了大量的数学 演算工作,同时将比较枯燥的 VRML 编程变成可视化编程,在获得大量数据的同时直观的 看到虚拟现实场景演示的效果。当然,在设计的过程中不可避免的出现了一些问题 ,比如对飞机飞行姿态的考虑, 由于飞机绕大楼过程中及投机身要改变方向和位置,要使演示更接近现实,所以需要考虑 坐标等的变化,耗费了一定精力。在对软件的熟悉过程中培养了我的耐心和求知欲。一个 人

50、如果决心要做一件事,没有这两样是不会成功的。本次题目的实现可以用编程完成,同样可以用仿真实现,通过两种方法的对比,我们 可以了解到 MATLAB 强大的功能,以及简单易掌握等特点。在解决复杂问题时,它拥有其它软件所无法达到的效果,是当今软件中的佼佼者,是值得推广的谢辞本次毕业设计圆满成功,不仅是个人努力所达到的,主要要感谢设计过程中帮助过我 的人。首先要感谢我的指导老师郑晓昆老师,给了我一个很好的题目。从接到题目到着手 准备,老师都给了我很大帮助。在遇到难题时,老师并不是直接将答案告诉我,而是给出 提示,让我自己寻求解决方法,我明白老师的良苦用心,知道这是为了培养我的独立思考 问题的能力。在设

51、计过程中对英语资料的研究也在一定程度上提高了我的英语阅读能力, 这也让我感受到了学习的快乐。其次感谢同学们,因为大家之间对问题的交流让我获益匪 浅,为设计提供了帮助。最后要感谢学校提供上级时间供我们顺利完成设计,谢谢所有为 我付出辛苦和给与帮助的人!参考文献1 孙祥、徐流美、吴清.MATLAB 7.0基础教程M.北京:清华大学出版社,20052 张金钊、张金镝、张金锐.虚拟现实三维立体网络程序设计语言VRML-第二代网络程序设计语言M. 北京:清华大学出版社,20043 埃石祥生.虚拟现实半月通M.北京:电子工业出版社,19944 崔杏圆、钱桦虚拟现实及其演变发展机械工程师J,2006,2:

52、22245 佟杰、王岚、吴洋基于MATLAB虚拟现实工具箱的手臂康复机器人仿真J.应用科技,2006,33 ,10: 63656 张家祥、罗雪山、方凌江等.用MATLAB虚拟现实工具箱进行飞机起飞模拟J.计算机仿真,2003 ,20,4: 66687 虚拟现实技术在技能训练中的一些实例J.中国教育网络.20068 薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用M.北京:北京大学出版社,20039 张家祥、罗雪山、方凌江.MATLAB中虚拟现实的应用J.电子计算报,2002,155,210 Man Young Rhee(韩).CDMA蜂窝移动通信与网络安全M.影印版11 陈

53、飞婷陈定方基于mat lab的虚拟现实交互性实现J.2003年02期12 于雅莉.基于matlab的虚拟现实技术在机器人足球中的应用J.长春工业大学学报:自然科学版 2005 年 03 期13 王虎,张广森.The Simula tion of CDMA Communica tionSys tem by MATLABJ.天津通信技术 2002 年 03 期附录plot3 语句,是绘制三维折线或曲线的基本命令,其基本格式为 plot3(x,y,z)view(az,el)语句:制定视点的定义角度,指定视线的方向。az参数表示在XY平面 上观测点与坐标原点连线的投影与-Y轴的夹角大小(右手坐标系),el参数表示观测点与Grid函数语句:grid on画出网格线;grid off取消网格线。Set(handle, PropertyName1,PropertyValue1, PropertyName2,PropertyValue2, )Set(handle, DefaultObjectTypePropertyName,PropertyValue)语句功能是设定指定图形对象的某些指定属性的属性值 .即先显示对象的指定属性的 缺省值,然后更改这个缺省值,最后显示改后的缺省值。循环语句格式:For i=StartVal:step:EndVal End(step 为 1 时,可省略不写,如本例 )

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!