基于OpenGL实时空情仿真可视化系统研究与实现.docVIP

基于OpenGL实时空情仿真可视化系统研究与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于OpenGL实时空情仿真可视化系统研究与实现

基于OpenGL实时空情仿真可视化系统研究与实现   【摘 要】基于可视化理论,本文介绍了以OpenGL为工具开发一个空情仿真系统的具体方法,重点阐述了系统实时性的实现,三维模型的建立,实时驱动模型,视点漫游等技术的实现。   【关键词】可视化 空情仿真 OpenGL   从近期几场高科技局部战争看,空袭作战,远程精确打击已成为现代战争的主要作战方式。做好防隐形飞机、巡航导弹、武装直升机等的打击和侦察监视是夺取未来反空袭作战胜利的关键。逼真地模拟敌攻击空情,是防空训练的一个基本前提。本系统利用可视化技术,对导弹、作战飞机、武装直升机等多种空袭武器进行仿真建模、实时驱动、同时模拟雷达对其航迹进行实时监测,为部队提供一种低成本、高效率的模拟训练方法。   一、空情数据可视化   空情数据可视化是将空情仿真实验中获得的大量数据用计算机图形图像的方式来展示,以期把握空情的整体演进过程。空情数据可视化属可视化技术范畴,它的系统功能包括以下几方面:a 对空情原始数据进行可视化处理,为可视化仿真开始作准备;b 对空情仿真过程进行跟踪和控制,控制仿真向着期望的方向发展;c对空情仿真数据进行可视化输出,以便于对数据的正确性进行评估。以上三点在可视化仿真系统中的关系如图1所示:   除了以上这三项一般可视化功能以外,空情数据可视化还要具有独特的可视化功能要求,那就是空情背景可视化和视点漫游。空情背景指的是所要仿真的空域内的一般的自然景物如山川,沙漠,建筑物,树木和自然现象如雨,云,雾等。这些可以增加仿真的真实性。视点漫游功能可以让观察者在系统所描绘的三维空域上任意一点来观察空情的情况,以便对整个空情的状况有一个全盘的掌握。   二、基于OpenGL的空情仿真可视化系统的实现   先就建立仿真程序框架做一说明:建立仿真程序框架首先是用Visual C++的AppWizard和ClassWizard生成一个基于MFC 的应用程序框架,得到一个Windows软件界面,可以是单文档或多文档。其次对OpenGL进行初始化,由于OpenGL函数库与操作系统无关,所以使用OpenGL函数库以前要对其进行特定的初始化操作,是它与Windows 兼容。OpenGL本身也有专门的初始化函数可以利用,它的初始化工作包括:设置像素格式,建立绘图描述表,清除缓存,光照初始化。下面就本空情仿真可视化系统实现中的几个具体问题予以讨论:   (一)系统实时性的实现   在WINDOWS中实现实时性一般是套用计时器的定时发送功能来实现,使计时器不但充当动画的驱动器而且让它担负实时作用。但是计时器所发出的WM_TIMER消息的优先级不高,只有在windows消息队列中没有其他消息时才处理此消息。这样如果操作系统忙于其他任务时,WM_TIMER消息就得不到及时响应。   由于实时空情仿真对实时性的要求比较高,所以在实时性的实现上我们放弃用计时器这种方法,而仅将它作为动画驱动器用。在实时控制上采用基于实际时间(用操作系统时间来代替)的实时性方法,即调用函数QueryPerformanceCounter(Time)使仿真严格按系统时间来推进,具体是让仿真场景中的一切运动物体的运动均严格基于系统时间而不是帧速率。从而避免了因帧速率难以固定而引起的实时性失真。这里用本系统的一个移动目标(如飞机等)的轨迹作为例子具体说明这种方法的实现。此目标以匀加速度a做直线运动,如图2所示。   当t=t。时,目标从P0(R0,E0,bZ0)处进入,其中R0为它的起始斜距,bZ0为起始方位角,E0为起始仰角.经过Dt 时间到达P1点(目标的起始航向为h0,起始俯仰角e0),目标的起始速度为V0.由运动学原理和几何关系可知:   通过上面这段代码可以实现在T1时刻在新位置P1处飞行目标的新姿态的绘制。   (二)空情模型在场景中的绘制   要在场景中绘制目标模型,首先根据目标在空中运动的运动学方程,分别解算出经过Dt时间所运动到的新一点的位置量和姿态参数 ,位置量告诉我们在场景中的什么位置绘,姿态参数决定在该位置上模型的确切的姿态。以上的运动参数可通过下列OpenGL函数将模型在场景中显示出来:   …………….   glTranslated (New_x, New_y, New_z); // 新一点的位置量将模型移到新位置上   glRotated (Rotate_x, 1.0, 0.0, 0.0); // 根据新的姿态参数调整模型姿态绕x 轴旋转   glRotated (Rotate_y, 0.0, 1.0, 0.0); //模型绕y 轴旋转   glRotated (Rotate_z, 0.0, 0.0, 1.0); // 模型绕z 轴旋转   Draw3D

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档