首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
嵌入式系统中动画设计方法的适用度分析
来源:本站整理  作者:佚名  2009-12-16 08:50:21




    (7)使用VC实现高速平滑的简单动画的方法
    许多软件(特别是游戏软件)的开发中,实现高速平滑的动画需要比较深的技术,如OpenGL、DirectX,并且可能还要开发人员有深厚的数学功底。但是,如果只是在开发嵌入式系统过程中,想为应用程序的界面实现一些动画效果,就可能不用以上这些技术了,更多的是用WindowsAPI提供或MFC封装后的GDI绘图函数来实现。虽然所需动画的复杂程度不高,但作为开发人员,并不能为此就降低对动画效果的要求。因此,需要了解如何用GDI函数来开发平滑无闪、高速的动画。
    该技术的关键就是在内存中创建一个与显示动画的窗口区域一样大的位图,先用GDI函数绘制位图,然后在适当的时候从内存中显示出来。因为位图已经绘制好,不象平时编程那样边绘制边显示,所以,显示一帧图形时便减少了闪烁,从而实现平滑动画;同时,由于图形是从内存中直接显示到当前窗体的,所以速度很快,从而实现高速动画。如果再创建一个线程后台绘制图形,将会实现很多特殊效果的动画,使嵌入式系统的用户界面收到意想不到的效果。
    在此基础上,还可以在显示位图时作优化显示。例如:不是将位图全部显示出来,而是显示其中动画的一部分,因为BitBlt函数作位传输很慢。这样更符合嵌入式系统重视效率的特点。


2 需要安装第三方软件的动画设计方法分析
    (1)为教学研究开发的嵌入式设备可使用Ubigraph
    graphviz和Ubigraph都是图论生成软件,但Ubig-raph功能更强,利用它可以快速生成图论模型的图形和动态图像,直观地展示出各种图论模型的三维结构,演示各种图论算法的过程。因为可以嵌入到Java、C、C++等语言中,所以当然适合用于嵌入式系统的动画设计,尤其是一些专门为教学研究开发的嵌入式设备。
    (2)Flash对嵌入式系统而言太过华丽
    Flash是一种功能强大的矢量动画软件,但是所用到的高级技术比较多,不过为了能够做出精美的电影特技效果的动画,还是值得对其进行深入研究的。然而,对于嵌入式系统开发而言,它实在是太过华丽了;如果不是特别需要突出游戏或者动画的精致效果,一般开发者应该不会舍本逐末以此来牺牲系统的速度和容量。
    (3)DirectDraw方法对嵌入式系统的适用度
    DirectDraw使用页面切换的方法实现图像动态。它不仅可以访问系统内存,还可以访问显示内存,实现图像动态的同时不会使得画面闪烁,是一种“完美切换”技术;因此DirectDraw技术很受程序员青睐,尤其在虚拟现实技术中应用广泛。但是,显而易见,该方法需要占用很大内存,安装所需的开发文件同样需要较大硬盘空间,应用到一般的嵌入式系统中,对反应速度等的限制将会比较明显。
    其实,用DirectDraw编程的核心要点即“几个表面之间拷来拷去”。在对界面的动画复杂程度要求不高的嵌入式系统中,可以采用C程序作为开发语言,并且在动画实现方法上,利用前述C程序设计中显示页和编辑页交替变化的方法,来代替几个表面交替拷贝的DirectDraw方法。然而,如果是大型的嵌入式系统,并且重视界面动画效果,采用DirectDraw方法和面向对象开发语言,仍然是更好的选择。
    当然,若对美术工艺有特殊要求,可以尝试将更专业的技术(如颜色锁结及用于3D效果的Z排序与视差)引入到嵌入式系统软件设计中——这种系统本身也应该是专业的、功能专用的,否则只能停留在理论上,难以实现!


3 可用于嵌入式系统开发的脚本语言
    当动画应用于网络时,可以选择直接使用脚本语言设计,譬如JSP、PHP等。当今的很多嵌入式系统都有连接网络的需求和相应功能,虽然大多数系统的屏幕动画都不涉及对外发布的问题,但在联网嵌入式系统的开发中直接使用脚本语言编写动画,也不啻为一个新的思路。
    Python可作为嵌入式系统的开发语言(在Nokia智能手机所采用的Symbian操作系统上已得到证明)。它最大的优势是能够很轻松地把使用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。由此,既可以直接使用Py-thon编写简单的界面动画,也可以将对速度要求更高的复杂动画使用C++语言编写后嵌入到Python程序中。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:156,082.00000 毫秒