1. 首页
  2. 编程语言
  3. C++ 
  4. 基于Visual+C++和OpenGL的具有余辉效果的P型雷达显示器仿真

基于Visual+C++和OpenGL的具有余辉效果的P型雷达显示器仿真

上传者: 2018-12-25 15:55:01上传 PDF文件 245.01KB 热度 28次
对雷达P型显示器的仿真是构建雷达虚拟维修训练系统的重要组成部分。针对扫描线变速变化时余辉的变化较难实现的问题,提出动态扇扫法对雷达手动扫描模式下的余辉进行仿真,采用Visual C++结合OpenGL为软件环境,双线程数据交互的方法,易于实现,效果理想,具有工程上的意义。10期刘焱,等:基于 Visual C++和 OpenGL的具有余辉效果的P型雷达显示器仿真2753由于属于同一个进程的各个线程共享操作系统分Invalidate( FALSE)配该进程的资源因此解决线程间通信最简单的方为了保证对扫描线进行相关操作后,绘图界面法是使用全局变量。使用全局变量可以实现由主能够实时的更新需要经常使用 Invalidate( FALSE)线程向工作线程“发送消息”。语句来重新绘制OnDw绘图函数中的内容。而扫olatile int m_dIgkI,mdlg2, m_redirect2;//定义全局变量描线的绘制就是通过下面的语句来绘制的在微调按钮控件的 OnDeltaposSpinl函数中调roTated(- m_angle,0.0,0.0,1.0);〃实现扫描线转动用自定义消息函数 OnSet Manual将扫描方向、方位f(m_ direct==1)/顺时针扫描角和方位差从控制界面传递给绘制界面。lfor( double m_i=0;m_i>=-mk;m_i-=0.6)/通过循环语句绘制扇形f( PNMUpDown-> iDelta>=1)∥/增大方位角,即顺时针扫描glColor4d(1 +m_i/(m_k), 1+m_i(m_k), 0, 1)i m_dlgdirect =1/方位差mk的变化改变扫描线余辉亮度的变化m_dIgdirect2 =m_dlgdirectm_dlgangle =m_spin. Get Pos()+( int )PNMUpDown->iDeltaglBegin( GL TRIANGLE_FAN);/以许多角度很小的等腰三角形组成近似的扇形5 glVertex3d(0,0,0);//保持方位同步glvertex3d(8* cos(PI*(-m_i+90)/180), 8* sin(PI*(-m_m_dlgk= m_dlgk1;∥/获取方位差i+90)/180),0);//极坐标o -> SendMessage(WM_SET_MANUAL, WPARAM)IVertex3d(8* cos(PI*(-m_i+91)/180), 8*sin( PI *(-mi+91)/180),0);/发送手动扫描自定义消息glEnd()点击微调按钮会使编辑框中的方位值发生变glFlush(); I化,而方位差监控线程就是通过编辑框的 On Chan仿真结果如图2图3所示。geDit函数添加的 CWin Thread* pThread=Afxe控制昇面gin Thread( Thread Func,&m_edi);语句来启动的。在自定义的消息函数 On SetManual中获取从控方位:制界面传送的方位、方位差和扫描方向,并设置一亮度调节距标节个计时器,最后重新绘制并刷新屏幕。目标参数设置计时器是用于在停止扫描时实现余辉的自动衰减。这里用到了一个计算机响应消息的优方位:10斜距取先级技巧。计时器消息在发送给应用程序时具有扫扇扫手动扫描较低的优先级别,只有在消息队列中没有其他消息时才处理它们4。因此,在按住微调按钮不放时计算机不停地处理按钮消息、自定义消息和重新绘图2控制界面图的命令消息,而计时器消息由于较低的优先级直不被响应,但也不会积压在消息队列中。当松开微调按钮停止扫描时,计算机只接收到一条计时器消息,而不会突然接收到多条计时器消息。在 OnTimer函数中加入下列代码实现余辉的自动衰减:mk-=4;/方位差以每0.1秒减小4变化,即余辉每秒减少40度f(mk<=0)/余辉衰减完毕回到扫描线静止状态rect=0;图3绘图界面KillTimer(1);j2754科学技术与工程9卷參考文献3结束语1郑敏,范忠诚零基础学Ⅴ isual c++,北京:机械工业出版本文采用 Visual C++和 OpenGL相结合编程为社,2技术背景,通过双线程实现手轮控制扫描线转动过2江早 OpenGL VC/VB图形编程北京:科学出版社,20013(美) Prosise J. MFC Window8程序设计北京博彦科技发展有限程的余辉变化,创新出动态扇扫法。通过计算机仿责任公司译.北京:清华大学出版社,2007真的结果,可以看到效果逼真,符合真实装备的情王立振,刘润华基于 Visual C++和 OpenGL的雷达显示系统实况。本文只是对雷达虚拟维修训练系统仿真技术现空军雷达学院学报,2003:17(4):10-12的初步研究,在以后的工作中还会对雷达显示器上5陈靖字,王春,倪天权基于 OpenGl.的具有余辉效果的雷达显符号标记的实现、目标的跟踪、系统的通用性、扩展示器仿真微计算机信息,2006;22(10-1):164-166性等内容作进一步的研究。Computer Simulation of the P Type Radar Indicator with LongPersistence Based on Visual C + and OpenGLLIU Yan, ZHANG Hong-wei, CAO Cheng-junDepartment of Optics and Electronic Engineering Ordnance Engineering College, Shijiazhuang 050003, P. R. China)Abstract] The simulation of the p type radar indicator is the important part of building the virtual maintenanceand tranining system for radar equipment. In order to solve the difficult problem which is about realizing the varietyof long persistence while the scaning beam shifts gears, a new method is introduced to simulate the presistence ofradar in manual scan model. Visual C++ and OpenGL are adopt to programme, and two threads to exchange the da-ta. The whole simulation has the advantage of easy operation, vivid effect, and signification in engineeringI Key words] Visual C++ OpenGL Long Persistence Simulation
下载地址
用户评论