王强 汤小慷 谢存 张学志 李伟强
【摘 要】雷达PPI显示器主要用于显示雷达探测到的空情信息,是雷达重要的子系统之一。本文介绍了GDI与双缓冲技术,并在此基础上,提出了一种新的雷达PPI显示器的仿真和实现方法。通过采用GDI的API实现了PPI显示器的图像和文字绘制,使显示效果更加清晰和逼真。同时采用双缓冲技术解决了在Win32环境下,PPI显示器实时更新所出现的画面闪烁问题。实践证明,此种实现方法简便,模块具有很强通用性和拓展性,为雷达显示器的仿真和设计提供了可以借鉴的思路。
【关键词】PPI显示器;双缓冲;GDI;仿真
0 引言
雷达PPI显示器是雷达的重要组成部分,它为操作人员提供雷达探测到空情信息。对雷达PPI显示器的通常采用Direct3D和OpenGL技术来进行仿真,其存在开发流程复杂,效率较低,成本高的缺点。本文介绍了GDI与双缓冲技术相结合的思路,提出了一种新的PPI显示器的仿真方法。
1 双缓冲绘图的实现
双缓冲在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样能大大加快绘图的速度。Win32环境下双缓冲实现的首先,在内存中创建与画布一致的双缓冲区;然后,在双缓冲区画图;其次,双缓冲区图像复制到显示缓冲区;最后,释放内存缓冲区。其流程如图1所示。
2 雷达PPI显示器仿真模型的设计
在雷达PPI显示器仿真时,详细分析了PPI显示器所要显示信息内容,在利用GDI绘图进行了分层绘制,将信息内容清晰的显示了出来,避免了相互遮隐。将雷达PPI显示器界面显示划分为四层,如图2所示。第一层为雷达背景、方位角刻度、底图等的模拟显示;第二层为距离刻度制层,该层主要用来显示雷达距离环,显示目标概率距离。第三层为扫描线的绘制层,从数据区实时获取扫描线的动态数据,在雷达显示器上绘制扫描线方位;第四层为文字信息层,将雷达的状态、目标的标号等文字信息绘制出来。
3 PPI显示器的仿真实现
利用坐标变换后,将PPI显示器360度划分6000mil,长刻度每100mil绘制一次,短刻度每50mil绘制一次,其主要实现代码及算法如下:
/*绘制短刻度*/
for (double iAngle = 3.0 ; iAngle < 360.0 ; iAngle += 6.0)
{
double xPPI,yPPI;
int xPScreen,yPScreen;
xPPI= (1.03*mRadius* cos (6.283 * iAngle / 360) );
yPPI= (1.03*mRadius* sin (6.283 * iAngle / 360) ) ;
xPScreen=(int)(xPPI+xCenter);
yPScreen=(int)(-yPPI+yCenter);
MoveTo(xCenter,yCenter);
LineTo(xPScreen,yPScreen);
}
4 结论
本文在研究雷达PPI显示器的仿真的基础上,利用了GDI和双缓冲技术解决了PPI显示在仿真过程绘图复杂以及频繁更新画面过程的图像闪烁问题,使PPI显示器仿真画面清晰逼真,取得较好的效果,为雷达显示器的仿真提供一种新的方法。
【参考文献】
[1]周涛.ZHOU Tao 基于GDI+与双缓冲的飞机姿态指示仪(ADI)仿真实现[J].现代电子技术,2014(16).
[2]周鸣扬,赵景亮.精通GDI+编程[M].北京:清华大学出版社,2003.
[3][美]李普曼,[美]拉茹瓦,[美]穆.C++ Primer中文版[M].李师贤,译.4版.北京:人民邮电出版社,2006.
[4]邹焕新,陈振林,周石琳,郑键.ZOU Huan-xin.CHEN Zhen-lin.ZHOU Shi-lin.ZHENG Jian 基于OpenGL的雷达PPI显示器仿真方法[J].火力与指挥控制,2010(8).
[责任编辑:杨玉洁]