基于VC的三维视景中虚拟实体的路径设置毕业论文(DOC 31页)

上传人:仙*** 文档编号:206507995 上传时间:2023-05-04 格式:DOC 页数:31 大小:1.08MB
收藏 版权申诉 举报 下载
基于VC的三维视景中虚拟实体的路径设置毕业论文(DOC 31页)_第1页
第1页 / 共31页
基于VC的三维视景中虚拟实体的路径设置毕业论文(DOC 31页)_第2页
第2页 / 共31页
基于VC的三维视景中虚拟实体的路径设置毕业论文(DOC 31页)_第3页
第3页 / 共31页
资源描述:

《基于VC的三维视景中虚拟实体的路径设置毕业论文(DOC 31页)》由会员分享,可在线阅读,更多相关《基于VC的三维视景中虚拟实体的路径设置毕业论文(DOC 31页)(31页珍藏版)》请在装配图网上搜索。

1、容摘要随着虚拟现实技术的应用越来越广泛,虚拟环境系统得到很快发展。在虚拟仿真环境中经常要事先设置虚拟对象的运动路径,而仿真软件Vega Prime提供的Path Tool工具能很好地解决了这一问题。本文是通过采用Vega Prime和VC+作为软件平台来实现运动路径的变化显示,主要讨论了基于仿真软件Vega Prime的路径和导航器基本原理,详细阐述了如何应用这两个模块在Lynx Prime中进行路径的设定,然后介绍了路径和导航器在VC+编程中的实现,最后基于实践应用探讨了仿真环境中虚拟实体运动路径的一些解决方法。索引关键词:路径导航控制点 力- 31 - / 31目录第一章绪论- 2 -1.

2、1 研究背景- 2 -1.2 研究的目的和意义- 3 -2.1 Vega Prime的基本情况- 5 -2.2 VP和LP的简介- 5 -第三章虚拟实体的运动路径设定的实现- 11 -3.1 Path和Navigator模块的基本原理- 11 -3.2 在Lynx Prime中创建路径和导航对象- 11 -3.3 Path和Navigator在编程中的实现- 18 -3.4 实现过程存在一些问题的解决方法- 22 -第四章结论- 24 -后记- 25 -参考文献- 27 -第一章 绪论1.1 研究背景随着计算机和信息技术等高新技术的飞速发展,计算机仿真技术也正在全球围得到迅速的推动,并在航空、

3、航天、地面战场模拟以与其它复杂任务中发挥着越来越重要的作用,虚拟仿真环境开发成为当前研究的亮点,而三维视景中虚拟实体的运动体现得越来越重要了。在虚拟仿真环境开发过程中,经常会遇到虚拟对象的运动路径设置。一般情况是事先确定运动路线,记录路线上的若干控制点的位置,点与点的连线采取数据平滑处理,运动对象按照设定的路线运动。Vega Prime是SGIPerformet基础上发展起来的环境仿真软件环境,它把常用的软件工具和高级仿真功能结合起来,可使用户以简单的操作、迅速的创建、编辑和运行复杂的仿真程序。该软件具有良好的图形界面Lynx,完整的C语言应用程序接口API,丰富的适用库函数以与大量的功能模块

4、,其中路径( Pathing) 和导航(Navigator) 模块是Vega Prime提供的两个路径控制模块。应用这两个模块与其接口函数,用户可以为预先确定的路径创建关键点,然后通过虚拟场景的运动对象用Navigator穿行设定的Path来自动对运动进行控制。1.2 研究的目的和意义本文中我们要研究的是以面向对象的思想对运动平台的三维实体运动路径的制作进行分析,提炼出了创建点集、设定路线、实体建模以与规定策略、导航等步骤;应用Vega Prime软件设置一系列动态的、有规律的运动路径,该软件可以根据用户需求进行高级功能仿真和特殊仿真需求的实现;还应用VC环境灵活的处理较复杂的路径设定设计此课

5、题的目的,是在仿真过程提供一个软件平台的基础之上,不断掌握整个软件的功能和分析该软件不完善之处。通过利用Vega Prime软件完成相关任务,帮助规划人员确定最佳运动路径设定的方案,解决虚拟对象在运动路径中的很多问题。Vega Prime软件中的Path Tool是路径和导航类的图形设置界面,并直接显示所要编辑的三维虚拟场景。使用这个工具,路径控制点将可以在三维场景中移动,在地形中插入、删除; 导航器可以在Path Tool实时环境中创建、编辑导航标记,并预览控制点的按照导航标记的运动过程。Vega Prime的其它模块都支持Vega Prime导航器为它们特殊的导航功能,并可以设置自己的路径

6、导航。如果用Path Tool创建了一条路径和一个导航器,路径和导航数据就作为路径文件和导航标记文件存在磁盘上,Vega Prime其它基本模块在配置中读入这些文件无需编写任何代码。路径和导航也可以完全通过API接口函数编程创建。在上面所述的课题背景下,研究基于三维视景中虚拟实体的运动路径设定具有很大的实际意义和可操作并成功的应用到了理学院漫游、野外综合演练仿真系统的虚拟仿真环境中,效果良好。第二章 Vega Prime概述2.1 Vega Prime的基本情况Vega Prime是MultiGen-Paradigm公司开发的一个对象的著名虚拟现实平台,它可以方便地完成场景的构建和三维模型的绘

7、制,并支持许多的特效。Vega Prime作为一种硬件虚拟现实的软件接口,并且作为一个独立的工作平台,独立于硬件设备、窗口系统,用它编写的软件可以在Windows NT以与更高级的操作系统间移植。它是模拟虚拟现实和实时的应用软件,是开发实时视觉和听觉仿真、虚拟现实和通用的视频应用的业界领先的软件环境。它把先进的仿真功能和易用的工具结合到一起,创建了一种使用最简单,但最具有创造力的体系结构,来创建、编辑和运用高性能的实时应用。结合先进的模拟技术通过简单可利用的应用工具,它提供了一种能够快速准确的建立复杂的应用模型的方法,并且能够提供复杂的虚拟模拟原型。2.2 VP和LP的简介 Vega prim

8、e(以后简称VP)是用于虚拟现实,实时视景仿真的一个实时三维驱动工具包。在这个工具包中,包含了一个重要的编辑器Lynx prime(以后简称LP),它为VP提供一个人机交互界面。Vega Prime原意是用来连接LynX Prime的。虽然Vega Prime包含了所有的建立一个应用程序所必需的Api,但是LynX Prime简化了开发过程,不用写任何代码就可以配置一个应用程序。LynX Prime是一个可以增加类的接口,定义接口参数的编辑器。这些参数可以是观测点的位置,场景中的对象位置、运动,灯光,环境效果,目标硬件平台等等,都可以在一个acf文件存为一个接口框架。一个acf文件包含一个Ve

9、ga Prime应用程序初始化必须的和运行时要用到的信息,可以在活动预览窗口预览在acf中的定义活动,预览窗口可以交互式的定义acf文件。活动预览窗口会持续不断的检查acf文件的变化,一旦有改变发生,它就会用新的数据更新Vega Prime 的仿真窗口。本文也可以用C+来开发可视化的应用程序。可以在应用程序里根据特定环境修改接口值,例如当某个物体碰到了一个目标物时可以指定相应的位置变化。Vega Prime应用程序也可以在一个图形通道里面加载acf文件。当应用程序编译完成后就可以执行了。关于LynX Prime 和在Vega Prime中工作的详细信息可以查看Vega Prime Progra

10、mmers Guide。2.2.1 VP系统结构图2-1 VP系统结构2.2.2 VP的应用组成(1)应用程序应用程序控制场景,模型在场景中的移动,和场景中其它大量的动态模型。实时应用程序包括汽车驾驶,动态模型的飞行,碰撞检测,和特殊效果,如爆炸。在VP外的开发平台创建应用程序,文件是以.ccp格式存档。并包含了C+可以调用的VP库的功能和分类。在编辑完成后就形成了一个可执行的实时3D应用文件。(2)应用配置文件应用配置文件包含了VP应用在初始化和运行时所需的一切信息。通过编译不同的ACF文件,一个VP能够生成不同种类的应用。ACF文件为扩展Mark-up语言(XML)格式。首先可以使用VP编

11、辑器LP来开发一个ACF,然后可以使用VP API动态地改变应用中模型运动。对于实时应用来说,ACF不是必要的,但它可以将改动信息进行译码,记录在.cpp程序中,这样可以节省大量的时间。(3)模型包以前,通常是通过计算机辅助设计系统或几何学来创建单个模型,但这些方法在实时应用很难进行编码。现在,可以使用MulitGen Creator和ModelBuilder 3D,以OpenFlight的格式来创建实时3D应用中所有独立的模型。可以使用Creator Terrain Studio(CTS),以MetaFlight格式来生成大面积地形文件。并可以使用这两种格式在VP中增加模型文件。2.2.3L

12、ynX Prime 用户界面LynX Prime用户界面包含四个不同的部分:树视图(Instance Tree View)、GUI 视图(GUI View)、API视图(API View)、工具栏(ToolBar)。对于已选择的类来说所有视图显示的信息除了一小部分格式不同外大部分一样。还可以在多于1 个视图中定义acf.图2-2 用户界面(1)GUI 视图(GUI View)在用户界面中显示,可以很容易的使用,GUI视图显示acf的接口和参数。可以在下拉列表中选择参数,在文本域里输入值。当打开LynX Prime,第一个GUI 视图被命名为myKernel,它是Vega Prime中的Kern

13、al类的一个实例。Kernel是应用程序的起点,它控制所有的实时操作。(2)实例树视图(Instance Tree View)实例树视图显示了当前加载的acf文件和它的所有接口。实例树视图显示了由父实例和子实例组成的实例等级图中的联结关系。能看到在程序中实例间的相互关系。如果在树中选择了一个实例,所有的视图都会同时显示它。如果在文件中的一个实例的引用指向了不止一个地方,这个实例的名字就会跟在一个蓝色的箭头,向下的箭头表示文件第一次被使用。向上的箭头表示有另外的引用指向实例。图2-3 实例树视图在上面的例子中,myPipeline被展开,显示了myChannel连接myWindow,这是myCh

14、annel的第一个引用,所以前面有个下箭头。myChannel也被myObserver引用,在这个例子中它前面有个上箭头。当选择了一个实例,实例的属性和当前值会同时显示在GUI视图和API视图中。介绍实例树视图几个主要部分:1.通道(Pipeline)模块通道指的是Vega Prime应用程序运行平台与图形生成硬件设备相连的显示终端屏幕,它决定了仿真应用提供给用户的可视围的大小,表现为图形硬件所支持的最大分辨率。注意:图形硬件所支持的分辨率跟终端显示设备所使用的分辨率是不同的两个概念,大型的图像工作站都支持多个显示设备的同时输出。2.窗口(Windows)模块窗口在Vega Prime中代表的

15、是一条渲染通道,渲染通道指的是可视化仿真系统实现中的整个渲染流程,所以要执行Vega Prime应用程序必须先定义一个窗口。用户可以指定窗口在屏幕上的位置,由于屏幕支持图形硬件的最大分辨率,所以窗口的大小实际上可以超出当前显示终端的分辨率设置,其效果是一部分窗口在显示器上看不见。3.频道(Channel)模块频道代表了用户用以观察场景的特定视角,表现为窗口中的一个矩形区域,实际上所有实时渲染都是通过频道进行的,所以场景要显示出来至少还要定义一个频道。一个窗口中可以包含任意多条频道,它们在窗口中的位置甚至还可以重叠。4.视点(Observer)模块视点是Vega Prime中的一个非常重要的概念

16、,也是核心概念之一。一个视点类似于一台摄像机或一台设置在数据库中的传感器,视点控制管理并且被锁定在一个场景运动体上,也可以同一个运动模型进行放置。观察一个场景必须要由一个视点。视点使用通道决定场景的观察体,就像照相机使用镜头观测区域一样,每个视点可以同时观察多个通道。最后应用程序显用户最终是通过观察者的视角,从本质上讲是通过通道来观察场景的。5.场景(Scene)模块场景就是所有载入的模型对象的集合。(3)API 视图(API View)API区显示选定的模型的所有可能的变量。在这里可以定义模型的值,就象在用户操作区一样。但是在API中,可以直接给变量赋值。当更改应用中的参数时,可参考API区

17、中要使用的变量的值。(4)工具条(ToolBar)LynX Prime工具条包括所有操作模型与属性的快捷按钮。这些功能同样可以在LynX Prime的目录中找到。第三章 虚拟实体的运动路径设定的实现3.1 Path和Navigator模块的基本原理在Vega Prime模块库中的路径( Path) 和导航器(Navigator)在虚拟场景中提供了控制运动对象轨迹的功能。路径就是一组在场景中设置了的控制点;导航器是路径中与这些控制点相关的一组数据信息集合。一个特定的导航器可以解释出路径的数据结构,并可以通过路径控制导航器穿过其控制点的运动方式。路径和导航模块提供了vpPath 类和vpNavig

18、ator类。vpPath类通过路径对象中的位置作为厄密(Hermite) 样条段的控制点。这样, vpNavigator类就可以通过设置切向量、紧密度参数、速度、持续时间等与路径类相结合。利用这些信息,导航器通过当前曲线段平滑进入下一曲线段。Vega Prime的Lynx Prime自带路径设置工具Path Tool,可以为用户在未编写路径导航代码时设置控制点和导航参数提供了方便。Path Tool是路径和导航类的图形设置界面,并直接显示所要编辑的三维虚拟场景。使用这个工具,路径控制点将可以在三维场景中移动,在地形中插入、删除; 导航器可以在Path Tool实时环境中创建、编辑导航标记,并预

19、览控制点的按照导航标记的运动过程。Vega Prime的其它模块都支持Vega Prime导航器为它们特殊的导航功能,并可以设置自己的路径导航。如果用Path Tool创建了一条路径和一个导航器,路径和导航数据就作为路径文件和导航标记文件存在磁盘上,Vega Prime其它基本模块在配置中读入这些文件无需编写任何代码。路径和导航也可以完全通过API接口函数编程创建。vpPath类提供函数设置路径控制点, vpNavigator类提供函数设置导航标记。通过编程,可以根据需要动态的改变路径和导航参数,使得路径控制更加灵活。3.2 在Lynx Prime中创建路径和导航对象Lynx Prime是Ve

20、ga Prime模块设定的图形界面, 用来定义和预览Vega Prime各种模块应用程序。用户只需用鼠标的左、中、右键点击即可创建和驱动图形中的模块对象。在不涉与源代码的前提下便捷地改变应用程序的性能,如显示通道、多CPU资源分配、视点、观察者、特殊效果等。尽管Vega Prime包含了建立一个应用程序所必须的所有API函数,但是Lynx prime可以简化这些过程,且允许使用者在图形界面下定义和预览ADF文件而不用写代码。在应用程序中,Vega Prime API函数与Lynx Prime相结合使用是非常有用的,能够减少很多复杂的工作。路径和导航模块属于Lynx Prime的两个基本模块。V

21、ega Prime可以根据要求和特定的仿真应用,很容易的直接加以扩展来满足特殊仿真的需要。3.2.1 创建路径对象首先,如图3-4,打开Lynx Prime图形界面中打开Pathing, 在Pathing标题下创建路径对象名称,如MPI_WayPointSet_1。然后在File Name标题下建立路径文件,为了便于记忆,路径文件一般和路径对象名一致。如果你想在对话关闭就开始增加路径点的话就选择自动增加模式。复杂的运动场景中可以创建多个路径对象。图3-4创建路径如图3-5,创建完路径后, 打开Navigators界面, 在Navigators标题下创建导航器对象名称,如MPI_Navigato

22、r_16。然后在File Name标题下建立导航器路径文件。同样,导航器文件一般和导航器对象名一致.在Select Path Way标题下选择将要导航器经过的路径对象。根据运动场景的需要,导航器对象可以定义多个,而且每一个导航器对象都有相对应的选项,只有用户选中时导航才会有效。图3-5创建导航3.2.2 路径和导航的编辑Path Tool工具界面是编辑路径对象和导航对象的专用工具,它包括菜单栏、通用的工具栏、一个视窗。在路径工具的Graphic Window导航是很容易的默认状态下,它被调成创建者移动模式完全和Creator Graphic视图导航一样。比如,按下Ctrl键并使用鼠标右键进行相

23、位控制;使用Shift+鼠标右键进行缩放控制。而鼠标右键会自动围绕一个点旋转视图。Path Tool工具栏包括六大部分:Display 、scenes 、Pathing、Motion、Data、Environment。Display用来控制和设置显示对Path Tool程序有效的属性, 有Texture、Fog、Lighting、Normals、wireframe等的开关控制还有浏览位置的设置和放大/缩小场景、裁剪场景等操作; Pathing主要对路径控制操作,包括添加/移除/插入路径控制点等操作;Data用于输入、查看、编辑路径和导航数据;Environment包括Path Tool应用软件

24、的环境控件用于环境的变化和显示经度、纬度的值。Vega Prime可以分别定义多个路径对象和导航器对象,视图当前选择的路径对象,其第一个控制点为绿色最后一个显示的点则是紫红色的,当前选择的控制点为红色,没有被选择的路径上的控制点为黄色。选择一个导航器对象后,路径上的控制点就会根据导航器选项按顺序连接。如果要改变选择的控制点的位置可以在视图用鼠标左键选点,也可以在左边控制节点对话框中输入坐标值精确定位。3.2.3 Path Tool控制点操作Path Tool左边的工具栏主要是针对控制点和场景进行操作。(1) Add (加入新点)在一个选定的路径对象中加入一个新控制点,有两种方法:第一种方法是在

25、创建路径对象的时候选中Auto-Add Mode按钮,用按下Ctrl键并使用鼠标左键定位;也可以在右边控制节点对话框中输入坐标值精确定位。第二种方法是直接用工具栏“+”键添加控制节点并且按下Ctrl键并使用鼠标左键定位或者在坐标系中直接输入值就能完成控制节点的添加。(2) Move (移动)该选项是用来移动要修改的控制点。可以直接用鼠标进行拖动或者在坐标系中直接输入值。(3) Insert (插入)该选项类似于加入新的控制点。不同的是所插入的控制点在当前选择的控制点之后,后面的控制点标号自动增加。(4) Delete (删除)控制点的删除。只要选中该选项,然后在正视图中找到需要删除的点,击鼠标

26、左键删除,后面控制点的标号随之减小。删除后的点无法恢复。图3-6 控制点操作的结果3.2.4导航选项的操作在创建导航对象的基础上选择显示高级的用户界面创建一个和导航名相关联的路径路线对象。在导航选项栏可以选择不同段的导航对象进行导航,这样的目的为了能更直观的仿真效果和发现问题。还可以选择不同的观察方式和着眼点。导航的设置主要包括循环(Loop)、关闭循环(Close Loop)、暂停(Pause)、重新开始(Reset)、反向(Reverse),延迟(Start Delay)时间、运动状态和速度等。图3-7 导航的设置3.2.5路径与导航选项的几个重要设置Path Tool的左侧工具栏中设定P

27、ath和Navigator几个重要参数设置,对控制点的属性的设置至关重要。(1)Loop Action (循环动作)当运动对象到达最后一个控制点后,循环动作指示样条曲线导航器该做什么动作;1. Stop:运动对象到达最后一个控制点后停止运动;2.Loop :运动对象到达后从最后一个控制点运动到第一个控制点再继续运动;3.Restart :运动对象到达后从第一个控制点重新开始运动。(2) Start at Control Point (运动对象从某控制点开始运动)导航器在穿越控制点的运动时不一定从第一点开始,可以从任何一个控制点开始它的旅程。(3) Delay Start (延迟开始) 在穿越控

28、制点开始前所需要等待的时间,默认值为0.000000。(4) Render Path (渲染路径)渲染路径根据所设的控制点描绘出近似的运动曲线。选中这一选项就显示一条黄色(颜色可以自己选择)的路径,这就是运动对象所要运动的轨迹。(5) Segment type (段类型) 段就是两控制点之间的部分,如果段是linear (线性) ,就表示两控制点之间是以一条直线连接。Hermite (厄密段) 用样条曲线来连接两控制点,并且通过力向量计算曲线的曲率。(6) Velocity Modes(速度模式) 有三种设定速度的方法: 1.Duration (持续时间) 表示导航器穿过一段曲线所花费的时间恒

29、定,但是控制点之间的相距越近,速度越快,相距越远,速度越慢,因此整个曲线的运动速度不恒定。2. Constant Velocity(恒定速度) 表示导航器以匀速运动穿过曲线每一个控制点。3.Aceeleration(加速度)表示导航器可以以常数、指数增长、线性变化等一些变化来运动。我们还可以在不同段设置不同的速度这对地形起伏变化有很大帮助使仿真效果更逼真,还可以容易发现不同段的问题。(7 )改变路径点的方法在有路径点后,如果想要改变一些路径点的。Path Tool 提供了几种方法。1.可以在当前的光标位置上改变一个现有的路径点的坐标系。2.点击Move the Way Point Up键或者M

30、ove the Way Point Down键直到放在新的位置可以改变,这个方法只能在被选择的路径点被横穿时才能改变其顺序。3.用手工操作只能粗略定位坐标。(8 )坐标轴在Path Tool平面地面的坐标系统中,用X,Y,Z来表示观察者的位置。观察者的方向是用坐标系统中的朝向,斜度和转角度的HPR值来表示。坐标轴是显示在默认坐标和定向系统里,+Z是向上,+Y是向北,而+X是向东。而朝向是围绕Z正方向旋转,即以一个计数器顺时针方向旋转。这样北是0,西是90,南是180,而东是270这些对定点有很大帮助。(9)Zoom in /Zoom out (放大、缩小)直接对场景整体放大或缩小,也可以对场景

31、中某一区域比较精确地放大或缩小。当需要对特定区域操作时,按鼠标右键+Shift拖动进行缩放控制,出现蓝色边框,这时的放大或缩小就只针对所选的蓝色边框有效。3.3 Path和Navigator在编程中的实现在VC+环境下编程,用户可以把Vega Prime提供的zsVegaView类作为调用和控制Vega Prime的编程接口,该类封装了调用Vega的头文件vp1h,用户可以根据需要扩充该类。如果路径和导航已经在Lynx Prime中定义,并且Object对象已经连接了导航器,则只要在编程中调用该Object到场景中,它就会按照所定义的路径和导航特性在场景中运动。但是用这种方法实现的运动在场景中

32、缺乏路径和导航随时间变化的灵活性。Vega Prime提供了vpPath类和vpPathNavigator类的API函数库,在编程中几乎完全可以实现Lynx Prime图形界面中路径和导航模块的所有功能,而且Vega Prime的路径编程相对于Lynx Prime具有很大的灵活性,更加方便地通过程序进行修改或调整控制点参数。Vega Prime提供了路径文件的读/写、路径属性的设置、控制点创建和设置等函数。3.3.1基于VP API的应用程序编写流程在VC+中,创建一个项目是会自动产生一个窗口,因此我们不需要定义窗口,而只需在所需的窗口中进行必要的程序设计即可。在实际程序设计之前,必须建立一个

33、基于视图类的私有类,贯穿于整个程序设计中。头文件根据需要可增加#include 、#include 、#include 等头文件。在定义自己的应用类时,应添加所有所需函数。#include int main(int argc,char *argv1)/初始化VPvp:initialize(argc,argv);/创建一个vpApp类vpApp *app=new vpApp;/装载ACF文件app-define(argv1);/配置应用app-configure();/仿真循环app-run();/取消引用app-unref();/退出VPvp:shutdown();return 0;以下以具体

34、实例为例,详细叙述整个设计的思想与步骤。该实例的整个流程图如下:图3-8 vp应用程序运行的流程3.3.2vpPath的类图结构vpPath主要包括vpPathNavigator、vpPathWay、vpPathWayPointSet等类,类图结构如图3-9所示。图3-9 vpPath类图路径控制点集类(vpPathWayPointSet)是路径上所有控制点的集合。vpPathNavigator类是导航器类,主要包括路径,是否延迟,延迟是按时间延迟还是按帧延迟等属性。PathWay是对路径信息类,是路径设置最重要的一部分,它主要包括路径的信息;主要函数有:设置连接控制点的方式(SetPath-

35、Finder);设置路径、控制点以与控制点名称的显示方式(SetRender-State);设置实体在路径上的运动信息(SetKinamaticSelect);以与设置该路径是否循环使用(SetLoopingEnable)。vpPathRenderState是对路径信息是否在屏幕上显示的设置类,主要属性有:是否显示路径线、路径线的颜色、路径线的粗细、是否显示控制点,控制点显示的大小、是否显示控制点标签,标签的大小等。vpPathFinder是一个接口,主要是对连接控制点的路径曲线进行设置。有PathFinderLiNear(直线),PathFinderCardinalSpline(曲线)两个类

36、继承自该接口。vpPathKinematicState是对仿真实体在路径上的运动状态进行描述,主要函数有:设置运动的加速方式,设置初速度的值,以与设置运动状态持续的时间或者帧等。3.3.3在应用程序中设置路径与导航在应用程序中设置路径与导航有两种方式,一种是在配置应用程序时设置,一种是在回调函数中设置,基本的流程有一样。具体的流程为:i. 在VC环境中创建和初始化一个vpPathWayPointSet对象。ii. 根据具体的连接方式创建vpPathFinder对象。iii. 创建与vpPathWayPointSet对象和vpPathFinder对象相关的vpPathWay对象,并设置相关属性。

37、iv. 获取vpPathWay对象中的属性vpPathRenderState对象和vpPathKinematicState对象,并对其进行设置。v. 创建与vpPathWay相关的vpPathNavigator对象,并设置其属性。由于路径和导航类为基类,因此可以根据仿真环境的具体要求创建它们的派生类,这需要我们进一步的探索运动对象的路径导航特性,从而扩充Vega Prime的这两个模块的路径导航功能。3.4 实现过程存在一些问题的解决方法(1)控制点的精确定位一般地说,由于Path Tool软件界面设计的局限性,直接在三个正视图中定位控制点的手工操作难度较大,点的精确位置不易确定,尤其是要求精

38、确到小数点多位以后的位置根本无法确定。有三种方法解决这个问题:一是在Creator软件中确定要设置控制点的坐标值并记录,然后调用Path Tool,在其界面右侧的添加控制点的对话框中直接加点输入坐标值;二是在Lynx Prime的坐标系中可以寻找控制点的准确位置;三是通过Vega Prime的API函数编程直接定位,这也是确定控制点最为灵活的方法。(2)Path Tool的力因子设定力因子如果设定得太小,路径曲线就会发生异常,例如纽结和打弯,一条很普通的曲线段中就出现一个结。运动对象就会沿着结运动,这是我们不希望看到的情况,解决的方法就是增大力( Tension) 值。(3)速度的设定速度并不

39、是整条路径上的速度,事实上每个控制点都有它本身的速度值。因此可以在不同的段根据程序的需要设定不同的速度。另外还可以在Path Tool中改变速度的设定模式,达到预期效果。 (4)运动体方向调整运动体的方向要随着路径方向的改变而变化。例如,一辆汽车转弯,汽车的方向要随着转弯方向而不断调整,这需要调整控制点的HPR值,使汽车的方向和运动路线相切。为了让运动体的方向调整不至于过于剧烈,可在曲率较大的位置设置多个控制点。 (5)拐点的平滑设定由于Path Tool软件界面设计的局限性,运动体随着拐点方向变化时我们会发现运动体的方向是强行转过去的与我们生活的现象很不一致。解决这个问题是1.当拐点为九十度

40、,首先确定一个圆,默认半径设为10米,根据拐点前后两点的坐标可以得出圆心坐标的值;然后根据运动体的走向取四分之一的圆弧;在四分之一的圆弧上以每九度定十一个点;用正弦定理和余弦定理计算出每拐点的坐标值。2.当拐点不垂直时,首先用两点的坐标确定一条直线得出两条直线列方程计算交点的坐标并计算弧度;确定圆计算半径再把弧度除以十得出每度的增长值;最后按拐点为九十度的方法计算结果。第四章 结论虚拟仿真环境的开发是是二十一世纪最受瞩目的热点之一,构建具有真实感的虚拟环境是应用虚拟现实技术一项不可缺少的关键步骤。本文围绕如何开发运动平台三维物体路径的制作与实体运动路径的三维显示,进行了以下几个方面的工作:1.

41、对Vega Prime软件进行研究,熟悉此软件相关功能;2.了解和掌握Path Tool工具中路径和导航器的基本原理; 3.给出一个虚拟实体运动路径设定的整体框架;4.通过Path Tool工具来实现运动路径的设定;5.研究在VC+中如何实现运动路径的设定;6.解决实践应用中存在的难点问题。本文在对运动路径可视化问题设定的过程中,提出了可视化的实施技术路线与一些关键问题的解决方案,这些方法在理学院漫游、野外综合演练仿真系统中达到了一定的效果,但是从实际应用的角度看,尚有许多欠缺,在本文研究工作的基础上,我的合作伙伴从以下几个方面做了进一步的研究和探索工作:1 虚拟物体在运动中没有考虑地形起伏等

42、情况,也没有考虑空气阻力等因素,此轨迹需要进一步研究和完善。2 虚拟物体运动时在转角处相邻的两帧不连续,以至观察者会感觉到画面有明显的抖动,这需要进一步研究和完善。后记1、心得体会和收获四年的大学学习如何,毕业设计是很好的一个反映。从一开始搜集资料到毕业设计论文的完成前前后后持续了两个多月的时间。在这段紧有序的时间里,我也收获了很多东西。一、通过这次毕业设计,让我又温习了一遍自己所学的专业知识,并且对Vega Prime有了更深的了解,增长了在相关理论方面的知识;同时在使用Vega Prime软件进行动态实现过程中让我对Vega Prime软件的强大功能产生了极大的兴趣,在Path Tool制

43、作的特效功能以与技巧方面掌握得也比较快,相信这个软件对我将来也会有很大的帮助。二、通过这次毕业设计更加使我明确了整体构思和经验的重要性。刚开始做时,心里没有一个具体的规划以至于老虎吃天,不知道从何处开始。其次在Path Tool工具的运用过程中,不了解其中的经验技巧,犯了很多错误,最后在同学们的帮助和教员的指导才顺利完成,在这些问题上浪费了不少时间。从这些问题上使我了解到毕业设计不是一个人的事情,一个组的同学之间应多交流交流这段时间的毕业设计心得体会以与一些经验,这样在获得经验的同时也放松了自己紧的心情,达到双赢的目的。三、通过这次毕业设计,使我对运动体的运动路径设定的知识有了很大的增长,特别

44、是针对目前部队工作中的综合演练,怎样才能够更好的去制定行军路线并体现出首长的意图,这是作训参谋主要要解决的问题;此次毕业设计也在无形中锻炼了我部队任职的需要,这对我以后的工作和发展都有很大帮助。四、通过这次毕业设计,在我获得知识和经验的同时,自己的知识结构还不全面,能力也有所欠缺,特别是在软件常识方面还有待进一步加强。2、致语时光如梭,转眼间四年的大学生活就要结束了。军校思念生活的点点滴滴都浮现在我的脑海。这次毕业设计是对四年学习所得的一次检验,在这次毕业设计中我要感导师世军教授和郭晓峰教员,正是他们对我的精心指导和帮助,才有了毕业设计的顺利完成,教员不仅在学业方面给我以无私的帮助,更多的是传

45、授给我解决问题的思维方法和严谨的学习工作态度。感曾经向我传道授业的教员们,正是你们的不倦教诲,指引着我在求知的道路上越走越远。感四年来所有培养我关心我的首长与领导,感你们对我的培养和帮助,你们的关怀,我将永远铭记在心!感四年来朝夕相处,给予我无私的关心和帮助的战友们!最后,向所有给予我关心和帮助的人们致!参考文献1 Vega Prime Programers Guide for Windows NT and Windows 2000 M.Version 3.5 , MultiGen-Paradigm Inc.2 MultiGen-Paradign Inc.Vega Prime Programm

46、ers Guide (Version3.7 ). Z .U.S.A.:MultiGen-Paradigm Inc.3 (Vega Prime Programmers Guide),.MultiGen-Praradigm Inc.4 倪明田,吴良芝.计算机图形学.计算机图形学M .:大学, 1999.5 龚卓蓉. 实时三维视景仿真软件Vega程序设计M . : 国防工业, 2002-8.6 胡社教,等.虚拟现实与卫星仿真技术 J .计算机仿真, 2001-3.7 戴锋. Visual C+程序设计基础M .:清华大学, 2001-4.8 云雷.三维实时动画的原理和实现.中国计算机用户,19969

47、 吴家铸等.视景仿真技术与应用.:电子科技大学.2001.10 晓波等一个基于MultiGen/Vega Prime的虚拟场景漫游系统.计算机应用.2001.11 龚建华等.虚拟中文大学校园的设计与初步试验.测绘学报.2002.12 新,吴恩华.澳门大学虚拟漫游系统实践.系统仿真学报,2001.13 David J.Kruglinski.VisualC +技术幕(第四版)M.:清华大学,2003.14 何江华,计算机仿真导论,:科学,2002.15 王乘,利军等,Vega 实时三维视景仿真技术,花中科技大学,2005.毕业设计(论文)原创性声明和使用授权说明原创性声明本人重承诺:所呈交的毕业设

48、计(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。作 者 签 名:日 期:指导教师签名: 日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢

49、利为目的前提下,学校可以公布论文的部分或全部容。作者签名: 日 期:学位论文原创性声明本人重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分容编入有关数据库进行

50、检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日注意事项1.设计(论文)的容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体与大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它

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