虚拟实验毕业论文初稿_第1页
虚拟实验毕业论文初稿_第2页
虚拟实验毕业论文初稿_第3页
虚拟实验毕业论文初稿_第4页
虚拟实验毕业论文初稿_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、 TOC o 1-3 h z u HYPERLINK l _Toc137313477 前言 PAGEREF _Toc137313477 h 2 HYPERLINK l _Toc137313478 第一章研究背景和意义 PAGEREF _Toc137313478 h 3 HYPERLINK l _Toc137313479 1.1关于虚拟实验室 PAGEREF _Toc137313479 h 3 HYPERLINK l _Toc137313480 虚拟实验出现的背景 PAGEREF _Toc137313480 h 3 HYPERLINK l _Toc137313481 虚拟实验室的构成 PAGER

2、EF _Toc137313481 h 5 HYPERLINK l _Toc137313482 虚拟实验室关键技术 PAGEREF _Toc137313482 h 6 HYPERLINK l _Toc137313483 1.2 开发微机原理虚拟实验平台的意义 PAGEREF _Toc137313483 h 7 HYPERLINK l _Toc137313484 第二章8255并行接口实验介绍 PAGEREF _Toc137313484 h 8 HYPERLINK l _Toc137313485 2.1 8255小键盘实验 PAGEREF _Toc137313485 h 8 HYPERLINK l

3、 _Toc137313486 2.2 8255开关状态实验 PAGEREF _Toc137313486 h 8 HYPERLINK l _Toc137313487 第三章 开发工具与开发环境 PAGEREF _Toc137313487 h 8 HYPERLINK l _Toc137313488 3.1 VRML介绍 PAGEREF _Toc137313488 h 8 HYPERLINK l _Toc137313489 3.1.1 VRML语言发展史 PAGEREF _Toc137313489 h 9 HYPERLINK l _Toc137313490 3.1.2 VRML的工作原理 PAGER

4、EF _Toc137313490 h 10 HYPERLINK l _Toc137313491 3.1.3 VRML的应用 PAGEREF _Toc137313491 h 11 HYPERLINK l _Toc137313492 3.1.4 VRML语法结构简介 PAGEREF _Toc137313492 h 12 HYPERLINK l _Toc137313493 3.2 VRMLPad简介 PAGEREF _Toc137313493 h 16 HYPERLINK l _Toc137313494 3.3 Cortona VRML Client简介 PAGEREF _Toc137313494

5、h 19 HYPERLINK l _Toc137313495 第四章 详细设计 PAGEREF _Toc137313495 h 20 HYPERLINK l _Toc137313496 4.1设计思想 PAGEREF _Toc137313496 h 20 HYPERLINK l _Toc137313497 4.2 模块设计 PAGEREF _Toc137313497 h 22 HYPERLINK l _Toc137313498 4.2.1 外观设计 PAGEREF _Toc137313498 h 22 HYPERLINK l _Toc137313499 4.2.2 按钮功能实现 PAGEREF

6、 _Toc137313499 h 23 HYPERLINK l _Toc137313500 4.2.2 连线功能实现 PAGEREF _Toc137313500 h 26 HYPERLINK l _Toc137313501 4.3 整体设计 PAGEREF _Toc137313501 h 29 HYPERLINK l _Toc137313502 4.3.1 8255小键盘实验仿真 PAGEREF _Toc137313502 h 30 HYPERLINK l _Toc137313503 4.3.2 8255 开关状态实验仿真 PAGEREF _Toc137313503 h 30 HYPERLIN

7、K l _Toc137313504 第五章 设计总结 PAGEREF _Toc137313504 h 30 HYPERLINK l _Toc137313505 参考文献 PAGEREF _Toc137313505 h 30 HYPERLINK l _Toc137313506 致谢 PAGEREF _Toc137313506 h 30前言虚拟现实(VR-Virtual Reality)是发展到一定水平上的计算机技术与思维科学相结合的产物,它的出现为人类认识世界开辟了一条新途径。虚拟现实的最大特点是:用户可以用自然的方式与虚拟环境进行交互操作,改变了过去人类除了亲身经历,就只能间接了解环境的模式,

8、从而有效的扩展了自己的认知手段和领域。另外,虚拟现实不仅仅是一个演示媒体,而且还是一个设计工具,它以视觉形式产生一个仿真的多维信息空间,为我们创建和体验虚拟世界提供了有利的支持。虚拟现实技术可以广泛应用于各个领域。这些领域包括仿真建模、计算机辅助设计与制造、可视化计算、遥控机器人、计算机艺术、先期技术与概念演示、教育与培训、数据和模型可视化、娱乐和艺术、设计与规划及远程操作等。虽然虚拟现实技术使用户接触到的只是一个虚拟的环境,但这个虚拟环境所体现出来的各项特征和现实环境的各项特征基本上是一致的,这样,即使用户并没有进入到真实的场景中,他也能身临其境地感受所模拟的现实场景。正是由于虚拟现实技术所

9、特有的虚拟及仿真特性,使得人们在需要进行一些高成本、高难度、高危险的实验时,能够采用虚拟现实技术来进行虚拟仿真,这样无疑能够降低实验的难度和成本,大大提高人们实践活动的效率。虚拟实验室正是虚拟现实技术在教育及科研领域的一项重要应用,以Internet为传播途径的网络虚拟试验室实现了对传统实验室的有力补充,是对传统实验室的时间上拓展和空间上的延伸。网络虚拟实验是指用户在远程通过Internet访问特定网站,在一定的虚拟环境下(即用虚拟设备替代实际设备,用仿真实验替代真实实验),按一定步骤完成实验及相关参数选择和设定,最终获得实验结果。实验结果包括通过虚拟仪器或虚拟对象体现出来的实验过程,各个过程

10、变量历史曲线和历史数据等。而网络虚拟实验室则是提供网络虚拟实验的场所。本文介绍了当前进行虚拟现实应用开发所要用到的关键技术,对其进行比较,并且着重介绍了使用VRML(虚拟现实建模语言)来开发微机原理实验8255并行接口实验的虚拟实验平台的全过程。意义关于虚拟实验室网络虚拟实验可以为学生提供一些在现实中无法体验的情景,可以帮助学生就一些需要进行实验而缺少实验条件和实验环境的研究性学习内容提供帮助。网络虚拟实验是在Web中创建出一个可视化的三维环境,其中每一个可视化的三维物体代表一种实验对象。通过鼠标的点击以及拖曳操作,用户可以进行虚拟的实验。网络虚拟实验室实现的基础是多媒体计算机技术、网络技术与

11、仪器技术的结合。虚拟仪器技术与认知模拟方法的结合也赋予虚拟实验室的智能化特征,无论是学生还是教师,都可以自由地、无顾虑地随时进入虚拟实验室操作仪器,进行各种实验。不但为实验类课程的教学改革及远程教育提供了条件和技术支持,还可以随时为学生提供更多、更新、更好的仪器。通过网络虚拟实验室,能够通过计算机在网络中模拟一些实验现象。它不仅仅能够提高远程教育的教学效果,更加重要的是对一些缺乏实验条件的学生,通过网络同样能够“身临其境”的观察实验现象,甚至和异地的学生合作进行实验。虚拟实验出现的背景人类社会发展的历程其实也就是人类向未知世界进行探索的过程,在这个探索过程中,不断实践是最直接,也是最有效率的手

12、段。当人们在实践中遇到一些之前从来没有遇到过的问题,或者要验证某种新的理论时,通过做实验来获得答案无疑是最为直观的选择。通常人们会针对某个具体问题来设计对应的实验,这些实验能够很好地体现出问题的关键点,人们通过对实验过程,实验现象及实验结果的分析来得出问题的大致解决方案或者是理论的实践结果。实验实际上就是把实际问题进行模型化,精简化的一种手段。不管是哪个学科,在哪个时代,实验总是解决问题,创新理论的重要依据,正是由于人类不断地进行探索,不断地进行各种实验,才发展到今天的现代化社会。到了现代,随着社会科学越来越快的发展,人们所要面对的各种问题也越来越复杂,难度也越来越大,通过传统的模型实验来解决

13、问题的方法已经很难满足要求,甚至是根本不能解决问题,如一些大规模,高难度的问题研究对象,采用传统的模型实验根本体现不出问题的实质,或者难于进行直接实验模拟。像在工程结构分析中有时需要进行建筑物及构筑物抗地震能力的分析,桥梁受到汽车高速碰撞的检验分析等。又如在高速荷载作用下,结构反应很快,人们在模拟实验中只能观察到最终结果,而不能观察试验的全过程。这些问题都是不能直接通过实验来分析,或者难以进行实验观测的事例。在当今社会各个学科领域中,这些问题还不是最重要的,类似的问题以及更重要的问题还有很多很多,如航空航天、原子反应堆等,这些都是属于造价昂贵、建设周期长、危险性大、难以实现实际系统实验的领域。

14、面对这些复杂的技术问题时,如果仍然采用传统的实验方法来研究,显然不能达到解决问题的目的,长此以往,积累的问题越来越多,势必影响到科学技术发展的整体进程,进而影响到整个社会的发展,所以必须要找到一种全新的技术手段来进行问题研究。好在20世纪中期出现的计算机技术发展越来越快,其硬件体系、软件体系以及计算机网络系统日益完善,计算机的应用领域也深入到各个学科中,计算机高精度,高速度的数据处理能力为人们解决了很多棘手的问题。特别是在虚拟仿真领域,依托当今较为完备的计算机软硬件体系,人们可以通过计算机虚拟仿真来完成一些高难度的实验,研究一个已经存在,或者正在研究设计中的系统。在进行计算机虚拟仿真时,首先人

15、们需要把研究对象的各项关键参数输入计算机中,运用专门的虚拟仿真软件系统在计算机内建立起真实系统的计算机仿真数学模型,然后利用模型代替真实系统在计算机上进行实验和研究。由于采用了虚拟的计算机模型来替代现实系统,而不涉及对真实系统的操作修改,所以虚拟仿真实验系统具有经济、可靠、实用、安全、灵活和可以多次重复使用的特点,现在已经成为对各种复杂系统(工程的、非工程的)进行分析、设计、实验、评估的重要手段,而且随着计算机科学的迅速发展,虚拟实验体系的技术手段、应用范围也越来越广阔。由于虚拟实验系统不需要采用真实的实验仪器,能够节约大量的实验成本,因此现在除了那些高科技领域采用虚拟实验系统外,普通学科领域

16、也开始采用虚拟实验系统来将其各种实验进行虚拟化,这样既能节约投资,又能方便管理。但是最开始的虚拟实验体系都是单机版的,许多科研单位、学校等都建立起专门的实验机房作为虚拟实验室。要进行虚拟实验只能在安装了虚拟实验系统的PC上进行,必须进到专门建立的实验机房里去上机,这无疑在时间、空间上对实验者制造了障碍。特别是在学校,像一些较为基础的实验,需要做这些实验的学生人数较多,机房配备的PC数量很难完全满足全部学生的上机要求,这个问题更是突出。因此必须解决好这个限制虚拟实验发展的问题。随着Web技术的发展,人们开始考虑利用Internet全球互通的优势来解除虚拟实验室在时间、空间上对实验者的种种限制。具

17、体的做法就是建立网络虚拟实验室,通过在网络上建立起专门的网站,将虚拟实验系统搬到网站上去,这样实验者只需要使用一台连接了网络的电脑,就能连到虚拟实验网站进行各种实验了。这也是我们这次设计开发所要研究的对象。虚拟实验室的构成网络为虚拟实验室的实现提供了一种基础平台,基于WEB的浏览器/服务器(B/S)计算模式也是实现网上虚拟实验室的一种基本模式(如图1.1所示)。服务器数据库虚拟设备客户终端1网络客户终端2客户终端n图1.1 虚拟实验室的组成虚拟实验室主要有以下几个部分组成:服务器:用于处理大量模拟操作数据。数据库:用于存储模拟资料初始条件和边界条件以及实验结果。虚拟设备:具有计算机接口,能够进

18、行实验仿真的虚拟实验设备。客户终端:安装实验处理客户端软件(或者支持Java、VRML等脚本的浏览器插件)的联网PC机,用于数据处理、分析、存储并使之可视化。服务器端通过软件技术仿真各种实验环境,接收来自客户端的实验操作请求,根据客户端对虚拟实验设备不同的实验参数设置,调整仪器的状态,模拟产生实验的现象,输出对应的实验数据或实验现象到客户端。学习者在客户端进行实验操作,其中实验过程中的数据和实验结果数据通过网络在客户端显示出来,也可以放置于服务器端进行保存,对于一些需要保密数据也可以在单独在客户端存放。在实验过程中,如果是多人合作实验,还可以附加一套网络通信系统,如BBS等,以保证多人在合作实

19、验过程保持同步,服务器端的后台数据库提供了可以共享的实验数据和实验方法。虚拟实验室关键技术基于网络的虚拟实验室的设计除了实验内容和结构设计以外,关键技术主要是软件工程方面的技术,如JAVA技术、ActiveX技术、VRML技术和QuickTime VR技术等。下面就虚拟实验室实现的有关技术要求作一概括介绍。(1)数据资源的共享。虚拟实验室涉及大量数据信息,为了能更好地管理数据,提高数据资源的共享能力,应实现实验教程的多媒体呈现形式;建立实验数据信息库,用以存储实验测量数据、用户个人数据和实验报告等信息;建立智能检索系统,以便实现检索并进入某个具体实验,搜索用户信息等功能。(2)建立共享软件库。

20、如虚拟测量仪器、数据处理等程序的远程共享、队列问题等。(3)支持用户与教师间以及用户与用户间的交互。可通过WEB页面、BBS、个人目录等手段实现。(4)可靠的安全机制。安全性是所有合作环境和共享资源建立的基础。主要技术有用户的鉴别注册和权限验证技术,邮件、个人数据的加密和数字签名技术等。(5)协同虚拟环境实现技术。即基于网络环境下的多个用户远程共同研讨同一个问题的实现技术。这是一个难点,必须解决一致性、协作性、扩展性、交互性、实时性等问题。(6)面向对象编程方法的实现。利用面向对象的方法,结合构筑虚拟实验室中所涉及到的信息,抽象为以下各类:用户类:封装对实验室用户的各种权限设置以及对用户数据库

21、的各种操作控制。用户数据类:封装用户之间交流信息的各属性以及信息的分类、转储、转发、排序等管理操作。虚拟仪器类:封装VI(虚拟仪器)在网络上的地址、仪器状态、对仪器进行的操作控制、对仪器进行操作控制的权限等。控制参数类:封装如硬件中断号、I/O地址内存基址、各种端口地址等参数以及运行参数的设置、读写性能检查、总线标准、性能结构描述等。测试数据类:封装对各种测试数据进行存储、操作、用户定制等操作,并可形成报表、测试数据的显示等功能。结果数据类:封装对应的VI和测试数据以及用户信息等属性,以及对分析结果进行数据管理操作。1.2 开发微机原理虚拟实验平台的意义随着计算机科学的迅速发展和技术的普及,其

22、应用范围已涉及到当今社会的各行各业,几乎是无孔不入。在这种情形下,非计算机专业的技术人员对微型计算机的工作原理有个基本的了解也成为了必要,因此很多高校非计算机专业也开始为其学生开设有关微型计算机原理及应用的课程。如我校的微机原理及应用课程即专门面向非计算机专业学生开设。学习微机原理及应用课程及其他电子类课程必定离不开上机实验操作,由于学校非计算机专业学生人数众多,计算机学院本专业的学生也不在少数,这就要求专业实验室实验设备数目和质量要能满足需要。而事实上存在这样一个问题,就是微机原理及应用课程上机操作所需要的仪器设备价格昂贵,而且如果操作不当,极易损坏,一旦损坏的话维修起来既费钱又费时间。我校

23、实验室目前的现状就是设备数目少,能用的设备数目更少,而需要上机的学生数量众多,实验室很难满足大量学生实验的需求,这就在一定程度上影响了学生学习该课程的学习进度和学习质量。因此当务之急就是要找到一个好的解决方案。当前网络技术已经十分成熟,而虚拟现实技术也在各个领域得到应用,并体现出许多以往旧技术没有的新特点。所以现在很多高校和科研单位开始结合网络技术和虚拟现实技术来开发网络虚拟实验室。这是一种很好的技术方案,首先,它能够解决实验室设备数量不足的缺陷,只要网站服务器性能过硬,网络状态良好,便能满足成千上万的学生同时实验;其次,它能解决设备易损坏的问题,由于学生操作的是用虚拟现实技术开发出的虚拟设备

24、,不存在损坏设备的情况,这样还可以让学生更加自主地放手操作;再次,它大大提高了学生实验时间、空间上的便利,学生无论何时,无论何地,只要能连接网络,即可通过电脑连接到虚拟实验平台进行实验;最后,它还能为实验室设备更新升级提供便利,可以随时用新的虚拟设备替换虚拟实验室的旧的虚拟设备;由于不需要真正的设备,虚拟实验室唯一的成本就是网站建设和虚拟设备开发的成本,这和建立一个真实的实验机房相比,无疑能够节省大量的资金。随着学校教学体系的不断完善,将来也许还会建立起更多学科的虚拟网络实验室,如医学、机械、化工等学科。因此,我们进行微机原理虚拟网络实验平台的开发是一项很有意义的工作,不仅为计算机学院解决了微

25、机原理实验的问题,同时也为我校虚拟实验系统的开发迈开了第一步。8255并行接口实验介绍 2.1 8255小键盘实验2.2 8255开关状态实验第三章 开发工具与开发环境我们在开发微机原理虚拟实验平台的过程中,采用的开发语言是VRML虚拟现实建模语言,开发工具是VRMLPad2.1,指定的浏览器插件是Cortona VRML Client。 3.1 VRML介绍熟悉WWW的人们都知道,受HTML语言的局限性,VRML之前的网页只能是简单的平面结构,就算Java语言能够为WWW增色不少,但也仅仅停留在平面设计阶段,而且实现环境与参与者的动态交互是非常烦琐的。于是,VRML就应运而生了。第一代Web

26、是以HTML为核心的二维浏览技术,第二代Web是以VRML为核心的三维浏览技术。第二代Web把VRML与HTML、Java、媒体信息流等技术有机地结合起来,形成一种新的三维超媒体Web。VRML被称为继HTML之后的第二代Web语言,它本身是一种建模语言,也就是说,它是用来描述三维物体及其行为的,可以构建虚拟境界(Virtural World), 可以集成文本、图像、音响、MPEG影像等多种媒体类型,还可以内嵌用Java、ECMAScript等语言编写的程序代码。VRML的基本目标是建立因特网上的交互式三维多媒体,基本特征包括分布式、三维、交互性、多媒体集成、境界逼真性等。 VRML语言发展史

27、VRML(Virtual Reality Modeling Language)虚拟现实建模语言,是由非营利的VRML联盟制定的三维网络应用标准。VRML联盟在1994年推出了VRML1.0版本,制定了网络上描述三维图形的格式标准。由于VRML 1.0规格只定义了静态的对象展示、材质、光源以 及网络连结功能,缺少互动的处理,VAG于1996年初着手制定新一代的VRML规格,并于网络上公开征求VRML 2.0的建议书。在1997年,VRML1.0重新地编写为VRML2.0,加入了许多交互的功能。VRML2.0在1998年真是通过ISO组织审议成为三维网络的国际标准并命名为VRML97。VRML97

28、相当于二维网络中的HTML标准。许多大公司都开始支持VRML97,例如SGI的Cosmo软件部门推出Cosmo Player浏览器插件和Cosmo World可视化场景编辑器,微软也在IE 5中捆绑PLATINUM WorldView浏览器插件,大多数的3D软件如AutoCAD、3DSMAX、Maya也开始提供VRML97场景导入导出的支持。然而VRML97并没有一统三维网络的天下。此后又不断地有大量的例如3DML、Cult3D、Viewpoint、Shockwave3D这样的新的三维网络格式出现。这些新软件提供了更出色的视觉效果和更小的文件体积,以及相对完整和便捷的创作工具。而这时,SGI放

29、弃了Cosmo软件部门,PLATINUM收购了Cosmo软件部门,后来CA公司收购了PLATINUM。CA现在基本上放弃了PLATINUM和Cosmo软件的开发工作,也没有在推出新的VRML软件。PLATINUM Worldview作为一个老旧的软件,也没有再整和在微软的IE 6中。VRML给人的印象就一直停留在它1998年的影响上,VRML似乎在人们的视野中逐渐消失,很多人甚至以为VRML已经消亡。1999年底,VRML的又一种编码方案X3D草案发布。X3D整合正在发展的XML、JAVA、流技术等先进技术,包括了更强大、更高效的3D计算能力、渲染质量和传输速度。以及对数据流强有力的控制,多种

30、多样的交互形式。2000年6月世界web3D协会发布了VRML2000国际标准(草案),2000年9月又发布了VRML2000国际标准(草案修订版)。 2002年7月23日,web3d联盟日前发布了可扩展3D(X3D)标准草案并且配套推出了软件开发工具供人们下载和对这个标准提出意见。这项技术是虚拟现实建模语言(VRML)的后续产品,是用XML语言表述的。X3D基于许多重要厂商的支持,可以与MPEG-4兼容,同时也与VRML 97及其之前的标准兼容。它把VRML的功能封装到一个轻型的、可扩展的核心之中,开发者可以根据自己的需求,扩展其功能。X3D标准的发布,为Web3D图形的发展提供了广阔的前景

31、。 VRML的工作原理VRML是一种用在Internet和Web超链上的,多用户交互的,独立于计算机平台的,网络虚拟现实建模语言。虚拟世界的显示、交互及网络互连都可以用VRML来描述。 VRML的设计是从在WEB上欣赏实时3D图象开始的。VRML浏览器既是插件,又是帮助应用程序,还是独立运行的应用程序,它是传统的虚拟现实中同样也使用的实时3D着色引擎。这使得VRML应用从三维建模和动画应用中分离出来,在三维建模和动画应用中可以预先对前方场景进行着色,但是没有选择方向的自由。VRML提供了6+1度的自由,用户可以沿着三个方向移动,也可以沿着三个方向旋转,同时还可以建立与其它3D空间的超链接。因此

32、VRML是超空间的。 VRML定义了一种把3D图形和多媒体集成在一起的文件格式。从语法角度看,VRML文件是显式地定义和组织起来的3D多媒体对象集合;从语义角度看,VRML文件描述的是基于时间的交互式3D多媒体信息的抽象功能行为。VRML文件描述的基于时间的3D空间称为虚拟境界(Virtual World),简称境界,所包含的图形对象和听觉对象可通过多种机制动态修改。 VRML文件可以包含对其他标准格式文件的引用。可以把JPEG、PNG和MPEG文件用于对象纹理映射,把WAV和MIDI文件用于在境界中播放的声音。另外,还可以引用包含Java或ECMAScript代码的文件,从而实现对象的编程行

33、为。所有这些都是由其他标准提供的,之所以在VRML中选用它们,是因为它们在Internet上的广泛应用。VRML 97规范描述了它们在VRML中的用法。 VRML使用场景图(Scene Graph)数据结构来建立3D实境,这种数据结构是以SGI开发的Open Inventor3D工具包为基础的一种数据格式。VRML的场景图是一种代表所有3D世界静态特征的节点等级:几何关系、质材、纹理、几何转换、光线、视点以及嵌套结构。几乎所有生产厂商,无论是CAD、建模、动画、VR,还是VRML,他们的结构核心都有场景图。 境界中的对象及其属性用节点(Node)描述,节点按照一定规则构成场景图(Scene G

34、raph),也就是说,场景图是境界的内部表示。场景图中的第一类节点用于从视觉和听觉角度表现对象,它们按照层次体系组织起来,反映了境界的空间结构。另一类节点参与事件产生和路由机制,形成路由图(Route Graph),确定境界随时间的推移如何动态变化。 VRML文件的解释、执行和呈现通过浏览器实现,这与利用浏览器显示HTML文件的机制完全相同。浏览器把场景图中的形态和声音呈现给用户,这种视听觉呈现即所谓的虚拟世界(境界)。用户通过浏览器获得的视听觉效果如同从某个特定方位体验到的,境界中的这种位置和朝向称为取景器(Viewer)。 VRML的访问方式是基于客户/服务器模式的。其中服务器提供VRML

35、文件及支持资源(图像、视频、声音等),客户端通过网络下载希望访问的文件,并通过本地平台上的VRML浏览器交互式地访问该文件描述的虚拟境界。由于浏览器是本地平台提供的,从而实现了平台无关性。下图描述了VRML的工作方式。VRML是一个开发标准,为了加强协作,避免技术重复和市场冲突,而鼓励其他技术引用VRML或成为VRML的一部分。与VRML关系密切的三项技术是Java3D、MPEG-4和Chrome。其中,Java3D和VRML都把3D Web作为关键应用对象,前者的优势在于程序设计,后者的优势在于场景构造,二者在可编程性3D Web应用方面密切合作。MPEG-4面向基于内容的交互式视讯应用,可

36、以为VRML提供流技术、压缩和音响同步技术,而MPEG-4用VRML来描述3D内容。在2D页面集成方面,可以探索VRML和Microsoft的Chrome协作的可能性。3.1.3 VRML的应用VRML在电子商务、教育、工程技术、建筑、娱乐、艺术等领域的广泛应用,将会促使它迅速发展,并成为构建网络虚拟现实应用系统的基础。虚拟现实作为一种全新的人机接口技术,必须研究用户和计算机之间的协调关系问题,这样一个问题只有通过大量的使用才能逐步解决,VRML以因特网作为应用平台,最有希望成为构筑虚拟现实应用的基本构架。 国内还开发过一些基于VRML97的应用系统,如浙江公众信息产业有限公司的3Dworld

37、。 VRML将创造一种融多媒体、三维图形、网络通讯、虚拟现实为一体的新型媒体,兼具先进性和普及性,是关心三维图形、多媒体、新一代网页开发和虚拟现实技术的人士应密切注意的。 3.1.4 VRML语法结构简介VRML语言风格类似于面向对象编程语言。在面向对象编程语言中,程序都是由一系列“对象”组成的,而在VRML语言中,一个完整的程序是由一系列的“节点”(nodes)组成的。正如每个“对象”或者“类”都有一组方法和变量一样,VRML中的“节点”也是由一组能够规定该节点属性的值构成,每个“节点”都是由四个特性值构成的,它们分别是:1、节点种类如 立方体、球体、锥体等2、节点参数称为“域”(Field

38、s),规定节点形态各项参数3、节点名称识别某个节点的唯一名称,可以缺省4、子节点从属于主节点的一系列节点 VRML中节点可以分为三类:形状节点(Shape)指明几何特性,如立方体、球体、圆锥体及ASCII字符节点属性节点(Property)影响节点的外在表现,如 外观、位置、翻转度、光照效果等组节点(Group)集合其它节点,以整体形式呈现 VRML中的域规定节点形态各项参数,分为exposedField(暴露域)和field(非暴露域),其中暴露域允许外部操作对它的值进行修改,而非暴露域则不允许。按照域的结构类型,又分为单值域(SF.)和多值域(MF.)两大类, VRML共定义了11个单值域

39、和9个多值域 VRML语句结构:第一行文字是:#VRML V2.0 utf8这是VRML文件的标志,所有2.0版本的VRML文件都以这行文字打头,VRML97是由VRML2.0版修订而成的,符合VRML97规范的VRML文件也以这行文字打头。其中“#”表示这是一个注释。而utf8表示此文件采用的是utf8编码方案,这在标准中有详细说明。 先加入一个Group节点(组节点): Group #这是一个多值节点组节点的花括号之内的所有内容视为一个整体,利用组节点可以把虚拟场景组织成条理清晰的树形分支结构。下面定义组节点的children域(孩子域): children #这是一个多值节点在child

40、ren后的方括号内定义Group节点的所有孩子对象,第一个孩子是一个Shape节点(形态节点),它描述一个几何形状及其颜色等特征: Shape #这是一个单值节点在Shape 节点内定义一个几何体Box(方盒节点): geometry Box #这是一个单值节点注意我们没有为Box定义任何域,这意味着它的尺寸和坐标位置等特性取缺省值(单位立方体)。随后补齐各右括号: 这是一个最简单的VRML文件,呈现出来的将是一个白色的正方体,下面是完整的文件: #VRML V2.0 utf8 Group #组节点children #子节点列表 Shape #子节点中的形状节点 geometry Box #几

41、何域,定义一个立方体 图3.1.1 图3.1.2VRML程序的基本格式大体上在这个简单程序中体现出来了,如果要想生成更为复杂多样的物体,就必须要用到另外一些高级的节点或域。如下例,加入了translation域(控制位移量)、rotation 域(控制节点翻转方式)Appearance节点(控制外观)、diffuseColor(定义反射色调)域和size(定义立方体尺寸)域。呈现出来的将是一个外观为红色,尺寸为2,中心位置处于坐标(3 ,0 ,0)处的正方体,如图3.1.2。#VRML V2.0 utf8Transform #类似于Group节点,但能够增加平移、旋转和缩放变换的相关域tran

42、slation 3 0 0 平移向右3个单位 rotation 0 1 1 1.57 #以原点与点(0 1 1)连线为轴转1.57弧度children Shape appearance Appearance material Material diffuseColor 1 0 0红色 geometry Box size 2 2 2 #尺寸为2个单位 另外,VRML中基本形状还有球形sphere、圆锥cone两种。同一个VRML程序中允许存在多个Transform节点,我们可以为不同的节点定义不同的形状、外观、尺寸以及位移坐标,这些都是根据程序的需要来定义,这样我就能够使用不同形状的几何体组成一

43、定外观的物体。格式如下:Transform #节点一ChildrenTransform #节点二ChildrenTransform #节点三Children 在VRML程序中,有时候会要求有交互的功能,这就要求用到触发器节点(TouchSensor),这个节点附和在某个实体节点上,作为其子节点,当鼠标指针移动到该实体节点上时,便会出现一个手掌形触摸提示标志。使用方法即在要添加触发器的节点的children节点中加上一行TouchSensor即可。一般情况下不同的触发点将触发不同的事件,这就要为触发器取名,使用DEF定义即可,使用方法如下,这样就为图3.1中的正方体附加了一个触发器,名为touc

44、h。TransformChildrenDEF touch TouchSensorShape #子节点中的形状节点 geometry Box #几何域,定义一个立方体 在VRML程序中,普通的线段也是一类几何节点,定义为IndexedLineSet,一条线由若干个索引点连接而成,这些索引点属于一个point域,这个域中包含了一系列的三维坐标点,编号从0开始递增。而连接这些点还有一定的顺序关系,这个顺序关系由coordIndex域定义,编号从任意一个坐标点开始。示例如下:Transform children Shape geometry IndexedLineSetcoord Coordinate

45、 point 3 4 0-2 4 0-2 -3 02 -4 0coordIndex 0,1,2,3,0这样就定义了一条连接了四个坐标点的封闭连线,如图3.3。图3.1.3 在VRML2.0中新引入的功能就是交互,即能控制动作的发生,这就要用到一个新的节点,这个节点被命名为Script,所有对事件动作进行控制的代码都放在这个节点中,写脚本的语言可以是java、javascript、vrmlscript,其中javascript和vrmlscript脚本可以直接放在script节点中,而java写的脚本代码必须以class文件的形式引入VRML文件。这些脚本语言的用法和特性在这里就不多介绍了。 V

46、RML中动作的产生与控制除必须依赖脚本代码外,还必须使用路由机制,即ROUTE,这个机制实际上就是用来引导事件进行方向的。比如最简单也是最常用的触发事件,当用户点击某个包含了触发器的实体节点后,按照设计要求,将触发script节点中的某个函数,这个函数负责产生某个动作,实现对某个实体节点的操作,如改变节点位置、颜色、尺寸等。这样事件发生的方向即:被触发的节点脚本节点要操作的对象,示例如下:#VRML V2.0 utf8Transform children DEF tou TouchSensor#为正方体定义一个触发器 Shape appearance Appearance material D

47、EF box Material diffuseColor 1 0 0 #将其材质节点命名#为boxgeometry Box DEF script Script #定义脚本节点,命名为scripteventInSFBool touch #定义一个布尔型入事件,对应touch函数eventOut SFColor setcolor #定义一个单值颜色型出事件field SFColor newcolor 0 1 0#定义一个单值颜色域,绿色 url javascript: #脚本段,使用javascript语言 function touch() #触发响应函数,把newcolor域赋给出事件setco

48、lor setcolor=newcolor; ROUTE tou.isActiveTO script.touch #触发器的触发事件路由到script的touch入事件,从而触发touch函数 ROUTE script.setcolor TO box.diffuseColor#script节点的setcolor出事件路由到box的颜色域,将其修改这个例子的功能就是定义一个红色的正方体,点击它后,其颜色就改变为绿色。以上介绍的就是VRML的一些基本的语法结构,也是在本次设计中用到最多的语法结构,限于篇幅,在这里只做一个大致的介绍。3.2 VRMLPad简介谈到VRML开发,不得不提的开发工具就是

49、VRMLPad了,这个工具是由Web3D 公司 ParallelGraphics开发的,是目前为止用得最多,也是比较好用的VRML开发工具。其界面如图3.3所示:图3.2.1由于VRMLPad界面简洁易用,查错及提示功能强大,一直是VRML开发者的首选开发工具。VRMLPad界面左边是文件的场景树、路径图,以及本地资源文件列表,右边部分则是代码编辑区,最右边是节点缩略图预览区,提供单个节点或组的预览功能。下面就VRMLPad的一些特性进行简单介绍。a、智能自动完成在编辑 VRML 文本时能够根据上下文关系及其在场景图中的位置给出一个包含合适的 VRML 标识文本的列表以供选择。这些 VRML

50、标识文本关键字关键字、PROTO 原型定义名称、节点名称、域的名称、域类型、SFNode 节点和 MFNode 节点的子域、标准 VRML 脚本对象及其属性和方法的名称。 b、动态错误检测VrmlPad 可以提示用户语法、值类型的错误或警告。提供域值是否在适当范围中。可以校验是否有重复的节点定义,是否有不匹配的域名或路由。 c、语法强调显示支持可定制的 VRML 语法强调显示(包括关键词、域和节点的类型)。d、多文档同时编辑在同一个 VrmlPad 中同时打开多个文件以便进行文件之间的复制、剪切、粘贴的操作, 或方便的查找替换文本。同一个文件也可以使用两个窗口来浏览同一文件的不同部分。根据当前

51、打开的文件能够很容易的找到与之相关的文件(例如 Inlines、Anchor、EXTERNPROTOs)并进行编辑。e、自动化操作与自定义脚本操作VrmlPad 允许开发者通过外部应用程序界面(API)使用 C、C+、Visual Basic、Borland Delphi 这样的语言来操控 Vrmlpad。另外高级用户还可以通过建立来插件、VBScript、JavaScript 宏命令来在 VrmlPad 环境中执行自定义的任务。f、整合脚本调试器可以使用此整合的脚本调试器在内嵌的 vrmlscript 脚本中,或在用 Cortona 控件插入VRML的网页中查找并修复。这个调试器有这些控制脚

52、本的执行的功能:可以暂停脚本的执行,运行至指定行,设置断点,一步步的运行脚本。监视脚本的数据状态:当前调用的堆栈;相关的前后代码中变量,数组,对象;计算包含这些数据的表达式。在调试阶段修改变量,数组,或对象的值。在调试阶段添加并测试新的脚本代码。使用 Quick Watch window(快速监视窗口)检验或修改变化的数据。使用CodeTips(代码上的弹出提示)快速监视脚本中的变量值。 g.预览使用系统里安装的 VRML 浏览器预览场景。可以自动检测系统中安装的 VRML 浏览器,也可以指定在其中某个特定的浏览器中预览场景。可以单独预览选定的节点或组。h.节点缩略图在文本编辑区旁边同步显示节

53、点的缩略图。i.发布组织并优化所有的相关文件,对场景可以采用 Gzip 压缩格式以优化网络下载的速度。把所有资源打包并上传到服务器上或作为邮件附件发送出去。3.3 Cortona VRML Client简介Cortona VRML Client是一款VRML 浏览器,也是由Web3D 公司 ParallelGraphics 发布的,其控制面板如下图所示,由一个竖直的工具条和一个水平的工具条组成。如果电脑上没有安装VRML浏览器,将不能打开VRML文件,当试图打开一个VRML文件时,系统会提示需要下载VRML浏览器插件,下载安装的便是Cortona VRML Client或者其他种类的VRML浏

54、览器。我们只有借助了VRML浏览器才能够浏览.WRL文件,与VRML场景进行交互,以及进行虚拟实验。其控制按钮为 : walk, fly, study, plan, pan, turn, roll; goto, align, view, restore,fit图3.3.1各个按钮功能分别是:walk:即象我们平时走路一样,它考虑重力的影响,也就是说我们的替身必须脚底下有可以支撑他的实物(这里指的是虚拟的实物),默认观察方式为plan。fly: 飞行,它不考虑重力的影响,即我们可以任意的前进、后退、上升、下降,默认观察方式为planstudy:结合plan,pan,turn,roll等方式可以全

55、方位的观察虚拟物体,默认观察方式为turn。plan:控制自己的替身前进、后退、侧前进,侧后退。结合不同的navigation有不同的效果。pan:控制自己的替身上升、下降、左移,右移。该选项不改变视角。turn:当navigation为walk时,浏览器会先把替身着陆,然后以替身为中心全方位改变视角;当navigation为fly时,以替身为中心全方位改变视角;当navigation为study时,不改变视角,而是以所观察的物体的体中心为中心全方位的旋转物体,这样便于从不同的角度观察事物。roll:与navigation 的结合使用与turn类似goto:可以使替身瞬移,而能够观察所要仔细观

56、察的局部物体。align:使替身的脚底平面与水平重合。restore:使视角回到default view ,即网页回到初始状态。fit:使替身能在特定的位置观察到所有的虚拟物体。view:切换不同的预定视角。Cortona VRML Client的使用方法简单明了,使用者很容易就能学会如何使用。第四章 详细设计 4.1设计思想 首先,必须使用VRML语言建立起虚拟实验设备的外观,包括其中的各个部件,如按钮、连线点、连线、开关、标志等。由于所用到的微机原理实验仪器外型比较简单,只需要用到VRML基本的立方体、球体、锥体进行合理的组合就能够制作出较为理想的外观模型,所以这里不需要借助第三方的3D模

57、型开发工具。在开发过程中,虚拟实验设备的外观、比例都严格按照真实的设备进行设计。其次,虚拟实验设备由一些基本的部件组成,其中一些部件如按钮、连线点、开关等都需要具备一定的交互功能。比如当用户按下某个按钮将产生某种实验现象,如亮灯;点击两个连线点,将在这两个连线点间生成一条连线,等等。而且每次实验开始之前,都必须检查所有的连线是否已经完成,否则实验将无法生成应有的实验现象,或者是产生因连线错误而造成的某种结果。这些功能就需要通过脚本代码编程来实现。在本次开发中采用的脚本语言是javascript。之所以采用javascript语言来编写脚本代码,是考虑到VRML文件最后将嵌入到网页中,而且可能要

58、和网页之间进行一些数据通信,而当前的网页所使用的HTML语言同样能够很好的支持javascript脚本,这样就比较容易实现HTML程序与VRML程序之间的通信。再次,必须解决好网页与VRML文件之间的通信问题。在真实的微机原理上机实验中,最重要的环节就是编写运行实验驱动程序。针对某个具体的实验,某个具体的芯片来编写汇编程序,通过运行汇编程序来指定芯片控制口地址以及数据口地址,建立起PC和实验平台某个芯片之间的连接,以实现对芯片工作方式及控制字的设定。驱动程序运行就绪之后,再按照实验指导连接线路,进行相应的实验操作后便能观察到正确的实验结果或者实验现象。而在虚拟实验平台的设计思想中,编写汇编程序

59、以及对汇编程序进行检验、查错的功能都由VRML虚拟实验设备所在的网页的代码检验模块来完成,VRML虚拟实验设备本身不具备代码验证的能力。在这里,网页中的代码检验模块的功能相当于真实实验中PC机的作用,而VRML编写的虚拟实验设备则替代了真实的实验设备。按照真实实验的流程,如果实验的驱动程序没有运行,或者运行错误,将不能产生正确的实验结果,或者只能产生一个初始状态,且不能响应用户的操作,如8255开关状态实验,如果没有正确运行驱动程序,不管12个开关的状态如何,显示出来的十二位状态数字应该是全1,因为8255芯片未初始化,不能按实验要求工作,所以读不出与其B口C口连接的开关的状态。所以在虚拟实验

60、平台的设计过程中也必须充分考虑到这点,也就是说网页的代码验证模块必须对所输入的汇编程序代码进行检验,当检验结果正确无误,且VRML虚拟实验设备中的连线都已经完成后,才能正确地模拟实验的过程,否则虚拟设备产生的实验结果应该和未运行驱动程序产生的实验结果一致。4.2 模块设计在概要设计中,主要探究如何设计虚拟实验设备的外观,以及虚拟实验设备各类部件(按钮、连线点、开关等)的模型及交互功能的实现。4.2.1 外观设计这里主要设计的设备外观即微机原理实验箱的底座(箱盖忽略不采用)。这个底座由于形状简单,且不需要进行交互,因此设计比较简单,采用两个立方体组合在一起即可形成实验箱底座的外形。效果如图4.2

温馨提示

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

评论

0/150

提交评论