航空数字化仪表中动画显示技术的应用.docVIP

航空数字化仪表中动画显示技术的应用.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文档。上传文档
查看更多
航空数字化仪表中动画显示技术的应用 导语:?针对实际的航空数字化仪表,给出了SVGA显示模式下动画显示的实现过程,其中包括了直接写屏技术、双缓冲技术等,并提出了一种利用显存自身实现双缓冲动画显示的新方法 摘 要:针对实际的航空数字化仪表,给出了SVGA显示模式下动画显示的实现过程,其中包括了直接写屏技术、双缓冲技术等,并提出了一种利用显存自身实现双缓冲动画显示的新方法。关键词:数字化仪表;SVGA;动画;双缓冲一、 引言  目前飞机座舱显示系统中使用的电子显示仪表,基本上沿用传统的指针显示形式。而计算机成像的彩色动画显示格式,则突破了传统的显示形式,使飞行员能迅速掌握瞬息变化的动态信息,做到一目了然,直接提高飞行员的作战能力。在座舱显示系统中最常见的显示方式就是指针指示。这就涉及到指针的动态显示原理, C语言标准图形函数通常强调更高的通用性,于是必然付出函数效率很低的代价,另外也不支持256色的显示模式,不能满足座舱显示系统的要求,所以本人开发了一套SVGA256色显示模式下的图形函数库,从显示模式设置的的底层开始,到运用显存自身实现双缓冲显示技术,大大提高了效率与显示质量。二、 常用动画显示技术介绍  图形动画技术有很多种,对C语言编程比较适合的主要包括:  1) 重画技术:  画了擦,擦了再画,或者一张一张贴(覆盖)上去。这是最常用的一种技术,操作比较简单,又分为全屏重画和局部重画两种,但动画效果较差,存在闪烁现象。  2) 异或技术:  通过对写入点和屏幕颜色进行逻辑异或运算,来实现擦除和重画运动部分的动画。具体的说就是如果在同一个位置用异或的方法画两个颜色相同的点,点会消失;而用不同颜色画点,点会变成第三种颜色。这种方法由于也存在二次擦除的过程,所以也会有闪烁现象。  3) 调色板技术:  利用预先设置的动作图片和显示适配中彩色表(调色板寄存器)通过屏幕的颜色变化来实现动画的技术。在SVGA显示模式下,256种颜色分别对应256个调色板寄存器,而每种颜色又是由R、G、B(范围都是0-255)三原色的值配出来的,每一个寄存器中的值可由程序进行设置,即可以通过程序改变这256个索引颜色的实际颜色。于是可以先将几个索引颜色设置为黑色,然后使用这几个索引颜色依次绘制出动画元素每个动画动作,这样每次将当前位置动作所用的索引颜色值设为当前颜色,其它动作的索引颜色设为黑色,就可以实现动画显示。  这种动画方法由于不对屏幕进行操作,所以画面及其稳定、流畅,无闪烁现象。但由于动画的所有动作都必须在动画之前完成,而且要用不同的索引颜色,所以这种方法无法处理复杂的动画元素。对于机载显示系统来说,指针的实际位置很多,而且要根据实际情况而定,所以无法采用调色板技术实现指针的动画显示。  本人所开发的某机载显示系统中,需要256色支持,所以采用了SVGA显示模式,运用重画技术与双缓冲技术相结合来实现仪表中指针及其它图像的动态显示。重画技术是编程人员最容易想到的一种动画方法,它来自于人们对动画显示最基本的理解——将前一次显示的图形擦去再在当前位置画上要显示的图形。但这种方法存在着一个致命的缺点,那就是图形闪烁问题。闪烁现象主要是由于将擦写的操作过程放在观众面前造成的,于是我们可以考虑将操作放到幕后,待操作完成后再将它快速映射到屏幕上去。事实上这将大大提高动画显示的速度和稳定性。在C语言标准图形函数中也提供了setvisualpage()和 setactivepage()两个函数来实现这一思想,但这两个函数的操作是对整个屏幕进行映射,效率较低,而且在SVGA显示模式下无法应用,所以必须从SVGA模式的设置、显示原理的底层出发来实现最终的动画显示。三、 SVGA显示模式设置  SVGA显示模式建立在VESA标准之上,可以提供多种高分辨率的256色图形模式(表1)。VESA-BIOS功能也是通过中断10h来实现的,所有功能的调用格式为:AH=4Fh,AL=VESA功能代码,功能代码为00h,返回VESA基本信息;功能代码为01h,返回VESA特定模式信息;功能代码为02h,设置显示;功能代码为03h,返回当前显示模式;功能代码为05h,控制VRAM存储段。  表1 SVGA模式下分辨率表  下面给出SVGA设置的基本操作函数:  1) 设置显示模式  void InitMode(int mode) //mode为显示方式号(表1中的中断号)  {  if(mode = 0x100)  {  asm mov ax, 4f02h //设置显示方式功能号AL=02h  asm mov bx, mode //bx=显示方式号  asm int 10h  }  else

文档评论(0)

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

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

1亿VIP精品文档

相关文档