实验三 利用VRML构造人机交互模型.docx
《实验三 利用VRML构造人机交互模型.docx》由会员分享,可在线阅读,更多相关《实验三 利用VRML构造人机交互模型.docx(15页珍藏版)》请在冰豆网上搜索。
实验三利用VRML构造人机交互模型
实验三利用VRML构造人机交互模型
1、实验目的
1.通过建立一个简单的基于IE和VRML浏览插件CORTVRML的人机交互系统,了解基于INTERNET的简单人机交互系统的基本特征和基本构建方法。
2.了解和掌握VRML插件CORTVRML的使用方法
3.掌握基本的网络虚拟现实标记语言VRML的使用方法。
4.掌握在网络环境下的人机交互的实现技术。
2、实验硬软件环境
普通PC机
WindowsXP操作系统
3、实验开发工具简介
1.虚拟现实建模语言VRML
VRML(VirtualRealityModelingLanguage)是一种建模语言,也就是说,它是用来描述三维物体及其行为的,可以构建虚拟境界(VirturalWorld)。
VRML的基本目标是建立因特网上的交互式三维多媒体,基本特征包括分布式、三维、交互性、多媒体集成、境界逼真性等。
2.VRML基本工作原理
用文本信息描述三维场景,在Internet网上传输,在本地机上由VRML的浏览器解释生成三维场景,解释生成的标准规范即是VRML规范。
VRML的交互与动画都是由事件驱动的。
VRML场景可以接受两种事件驱动:
从路由语句传过来的入事件及由外部程序接口写入的直接事件。
3.VRML开发设计工具VrmlPad
VRML的发展历史不长,但由于其强大的功能和诱人的应用前景,许多支持VRML的专业编辑系统不断涌现,如常见的Internet3DSpaceBuilder、CosmoWorld、VrmlPad、3dsmax等。
这些编辑系统功能专一且强大,更可贵的是使用方便、简单。
4、实验要求
利用VRML构造一个如图所示的模型(可以使用各种建模工具建模,然后导入VRML),可以在通过浏览器够从各个角度观察此模型,并能使之简单地运动。
要求有简单交互功能。
5、实验步骤
1.设计场景和对象模型,进行人机交互操作的代码设计
2.打开VrmlPad编辑器,在VrmIPad的编辑窗口编写VRML源程序
3.在CORTVRMLVRML浏览器中使用菜单和工具条观察模型的运动
4.进行对象运动和场景运动人机交互的操作,体会交互过程和实现方法
6、实验内容
(一)操作界面
1.Align方式:
当观察者的视角进行多次变换后,视角经常发生倾斜,通过点击该按钮后,以便用户的视角恢复正常;
2.Walk模式:
这是缺省的用户观察方式选项,观察者在空间中是以漫步的方式进行的,按下鼠标左键往不同的方向拖动鼠标,可以实现前进、后退、左转、右转等观察行为,也可以用键盘上的四个方向键,上键向前,下键后退,左右键转头;
3.Fly模式:
方便观察者在空间中以飞行的方式浏览(即取消重力),操作大体同Walk模式;
4.Study模式:
浏览者可以对于观察物体进行旋转观察
5.Plan方式:
前后平移按钮
6.Pan方式:
左右平移按钮
7.Fit按钮:
将整个观察物体放于视角中最合适的位置
8.Restore按钮:
重新装载VRML文件按钮
(二)实验源码
#VRMLV2.0utf8
Viewpoint{
position050100
orientation100-0.3
}
DEFrenTransform{
children[
DEFshangshenTransform{
rotation1000.2
children[
Transform{
scale000
children[
DEFzuheTransform{
children[
DEFzhuTransform{
children[
Shape{
appearanceAppearance{
materialMaterial{
diffuseColor001
}
}
geometryCylinder{
height4
radius1
}
}
]
}
DEFqiu1Transform{
translation020
children[
Shape{
appearanceAppearance{
materialMaterial{
diffuseColor100
}
}
geometrySphere{
radius1
}
}
]
}
DEFqiu2Transform{
translation0-20
children[
Shape{
appearanceAppearance{
materialMaterial{
diffuseColor100
}
}
geometrySphere{
radius1
}
}
]
}
]
}
]}
DEFheadTransform{
translation0100
scale1.51.51.5
children[
USEqiu1
]
}
DEFshentiTransform{
translation0100
scale11.51
children[
USEzuhe
]
}
DEFjianTransform{
rotation0011.57
scale10.71
translation010.50
children[
USEzuhe
]
}
DEFbi1Transform{
rotation0012.5
scale111
translation-2.68.80
children[
USEzuhe
]
}
DEFbishang2Transform{
rotation0101
translation2.49.80.6
children[
Transform{
rotation100-1
scale10.61
children[
USEzuhe
]
}
]
}
DEFbixia2Transform{
rotation0100
translation3.28.62.1
children[
Transform{
rotation100-1
scale10.61
children[
USEzuhe
]
}
]
}
DEFkua1Transform{
rotation0012.5
scale10.21
translation-0.56.30
children[
USEzuhe
]
}
DEFkua2Transform{
rotation001-2.5
scale10.21
translation0.56.30
children[
USEzuhe
]
}
]
}
DEFxiashenTransform{
children[
DEFtui11Transform{
rotation0010.2
translation1.33.61.2
children[
Transform{
children[
USEzuhe
]
}
]
}
DEFtui12Transform{
rotation1000.2
translation1.7-0.50.7
children[
Transform{
children[
USEzuhe
]
}
]
}
DEFtui21Transform{
rotation001-0.3
translation-1.341.8
children[
Transform{
rotation100-0.3
children[
USEzuhe
]
}
]
}
DEFtui22Transform{
rotation1000.1
translation-2-0.22.2
children[
Transform{
children[
USEzuhe
]
}
]
}
]
}
]
}
Transform{
translation0-3.50
children[
Shape{
appearanceAppearance{
textureImageTexture{
url"1.gif"
}
textureTransformTextureTransform{
scale1010
}
materialMaterial{
diffuseColor111
}
}
geometryBox{
size1000.3100
}
}
]
}
7、实验心得体会
通过本次实验,我学会了使用VrmlPad编辑器,并能构造一个简单的模型,在浏览器中打开并从不同角度观察,以实现简单的交互功能。
此外,我还学会了在CORTVRMLVRML浏览器中使用菜单和工具条观察模型的运动,进行对象运动和场景运动人机交互的操作。
人机交互是门很有意思的学科,通过几次实验自己动手操作后,我发现自己目前掌握的知识太少,会使用的工具也太少,今后还需要继续动手去做,才能更加深入地感知这门课的精髓。