摘要:动画是图形创意中的一个重要组成部分,在程序设计中,动画的实现是程序员经常要遇到的问题。本文将介绍一些Windows操作系统下的动画编程(www.cppentry.com)实现方式。程序大多采用Visual C++(www.cppentry.com)的Windows API实现。
关键词: 动画技术,Windows操作系统,程序设计
1.动画技术的原理
动画是图形创意中的一个重要组成部分,其基本原理与普通的动画原理相同,即都是利用人眼的"暂留"效应,使连续的静止画面看上去具有动感。动画根据其显示维数又可以分为二维动画和三维动画,我们见到的动画大多为二维动画,本文将着重介绍这方面的内容。三维动画的实现较二维动画的实现要复杂的多。
2.Windows下的常用动画技术
在程序设计中,动画的实现方式有很多种,但基本的原理却非常类似,即在初始位置显示初始图形,经过短暂的延时后,去除掉初始图形,并在新的位置显示新的图形;这些步骤加以循环,便形成了动画的效果。下面结合C++(www.cppentry.com)程序介绍一些Windows下的常用动画技术,其中的实际绘图方法参见相关的Windows程序设计书籍。
2.1底色覆盖
底色覆盖法是利用屏幕底色将原始图形覆盖掉,这种方法是实现动画的最简单的方式,其基本原理如下:
while( 条件 ) { 在(x, y)位置绘制图形。 短暂的延时。 在(x, y)位置将原来的图形用屏幕底色(如黑色)覆盖掉。 将(x, y)参数赋新值。 } |
利用底色覆盖的方法实现的动画有着明显的闪烁效果,一般,极为简单的动画可以用这种方法来实现,如不断闪烁的星星等。
2.2多图片切换
这种动画实现方法的效果类似于Gif动画的效果,其原理是将动画的帧事先绘制出来,存为位图文件或位图资源,并按照动画的顺序为这些帧加以编号。当要显示动画时,在指定的位置,间隔适当的时间,按照顺序显示已经绘制好的位图帧,从而达到动画的目的。
下面是利用这种方式实现的动画程序框架:
// bm[]为多张位图文件的路径及文件名数组,按照顺序储存了多张位图 // picBox为PictureBox控件的一个实例
for( i=0; i<len(hbm); i++ ) { picBox->Picture = bm[i]; // 选中位图 ::Seep(100); // 延时 if( i == len(hbm) - 1 ) i = -1 } |
当在屏幕的固定位置有规律地显示动画时,可以考虑采用这种动画方式。
|