多边形快速填充姿态画面的研究

2018-03-22 11:44闫晓慧
电子技术与软件工程 2018年3期

闫晓慧

摘 要 现代飞机座舱综合显示系统中,姿态画面的填充是一项非常费时的工作,本文提出一种使用多边形快速填充姿态画面的方法,通过支持绘制多边形的图形驱动芯片的配置,来实现姿态画面的快速填充,所绘制的多边形具有抗锯齿、反走样效果。该方法简单快速,能够满足姿态画面的填充速度和显示效果。

【关键词】图形驱动芯片 快速填充 姿态画面

1 引言

在飞机座舱综合显示系统中,姿态画面是重要的显示画面之一。飞机飞行时,姿态参数随着飞行状态的改变而不断变化,要求显示系统能提供准确清晰的画面,且实时更新的。而姿态指示天地区域的填充是非常费时的工作。本文针对支持绘制封闭多边形的图形驱动芯片,提出一种直接快速的填充方法,与以往采用水平线或者竖直线扫描方式填充相比,减少了运算量和存储容量。

2 姿态显示分析

姿态显示画面一般具有比较固定的图形特征和变化特点,图形的边界由四条线段首尾相连而成,有时要求上下为圆弧形,通常采用半圆覆盖的方式实现,此处主要描述图1所示的矩形姿态显示画面。其中AB代表地平线,将整个封闭区域分成了天色和地色两部分,通常褐色代表大地,位于地平线以下;蓝色代表天空,位于地平线以上。当飞机的姿态发生变化时,地平线的位置和方向也随之发生变化,此时褐色区域和蓝色区域需要进行动态重新填充。

下面将动态填充的过程转换为数学模型,如图2所示,矩形姿态画面是由坐标(OSX,OSY)、(OEX,OSY)、(OEX,OEY)、(OSX,OEY)所围成区域;α为倾斜角;R与俯仰角成一定的比例;地平线实际是以(0,0)为圆心的所有同心园的切线,切线将矩形区域分成两个不同的区域。根据不同的斜率K计算出切线与矩形边界所在的直线的交点坐标,即可快速填充天地区域。

3 快速填充的方法

本文选用支持绘制封闭多边形的图形驱动芯片MB86296详细介绍该方法的实现过程。MB86296是一种高性能3D显卡芯片,其几何引擎可以通过浮点运算实现精确的数字化图形处理,提供高清晰度的图像,其绘图功能具有抗锯齿效果,可通过配置相关寄存器绘制光滑漂亮的直线及各种封闭多边形。

3.1 配置寄存器绘制多边形

0xf101010a //设置寄存器MDR2

0x00000000

0xf1010114 //设置寄存器PFBR

0x45000000

0x09e20000 // ClearPolyFlag

0x00000000

0x03000400 //设置颜色值

Color

0x71e00000 //PolygonBegin

0xXXXXXXXX //x0, y0

0x71ff0001 //SetVertex

0xXXXXXXXX //x1, y1

0x07620002 //DrawVertex

0xXXXXXXXX //x2, y2

0x07620001 //DrawVertex

0xXXXXXXXX //x3, y3

0x07620002 //DrawVertex

0xXXXXXXXX //x4, y4

0x07620001 //DrawVertex2

0xXXXXXXXX //x5, y5

0xf0e10000 //PolygonEnd

3.2 设置不同的顶点数同样可快速绘制三角形和矩形

通过此种方法绘制三角形、矩形及五边形来快速填充姿态天地区域。先判断俯仰角的大小,与0、±min(宽、高)/2这两个值作比较,再判断横滚角的大小,与0,±90,±180做比较,然后比较斜率K与K1、K2、K3、K4的大小来分情况快速绘制三角形,矩形,五边形。具体的流程图如图3所示。此流程图仅详细描述了一个分支的快速填充,其他分支相同。

本方法采用了高性能的圖形驱动芯片,仅应用了简单的计算,无复杂的算法,程序运行时间也能保证余量的要求。对于使用类似图形驱动芯片的硬件平台,此方法明显优于以往采用水平线或者竖直线扫描方式填充。

4 结束语

本文将复杂的姿态画面转化为数学模型,通过比较各斜率的大小,确定天色和地色的填充区域,主要是通过配置MB86296图形驱动芯片的相关寄存器,快速绘制多边形。任意的直线,三角形,四边形,五边形都可以绘制,此方法提高了填充速度,减少了存储空间,能简单快速有效的生成全姿态画面,且显示效果能够满足人机功效的要求。

参考文献

[1]唐波.一种新的全姿态指示画面填充算法[J].电光与控制,2008.

[2]贾银亮.机载全姿态指示仪的图形变换[J].应用科学学报,2009.

[3]贾银亮.基于FPGA+DSP的飞机座舱综合图形显示技术研究[D].南京航空航天大学(博士论文),2011.

作者单位

太原航空仪表有限公司 山西省太原市 030006