论文部分内容阅读
摘 要: 动画具有突出并强化事物特征、实现工作模拟、进行图形变换等多种功能,使所开发的软件科学合理、生动形象。本文介绍了动画的基本原理及利用C语言程序设计实现动画的常用方法。
关键词: C语言 动画技术 实现方法 图形处理函数
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件、二维、三维图形和动画。利用C语言提供的图形处理函数设计动画程序,可以用于游戏娱乐、辅助教学、实验模拟和仿真等计算机辅助设计,具有较强的实用性。下面介绍几种C语言中图形动画技术的实现方法。
一、动画实现的原理
动画的制作原理类似于电影,它是利用了人的视觉效应,使一幅图像在不同时间和位置多次出现,从而产生动画效果。动画的实现其实主要依赖的是人的视觉残留作用,人的视觉有一种惰性,当看一幅画的时候这幅画的信息就保存在眼睛里了,即使这幅画突然消失,保存在眼睛里的信息还将保留一会儿(大约十分之一秒)。大脑的感觉就好像这幅画还存在似的。人不会感觉画面是断续的,从而产生动画的效果。因此动画就是由一连串许许多多的单幅图像,在程序中快速反复地循环显示而产生。因此我们可以用C语言提供的许多关于图形的函数来方便地实现动画,从前面的动画原理可以知道有两个关键的地方:一是图形图像的产生方式,要求产生的图像要准确。二是两幅图之间的转换,要求转换速度要快,不能产生闪烁感。只有这样实现的动画才逼真。
二、C语言动画设计常用方法
1.利用目标移动覆盖技术实现动画
动画的形式是多种多样的,目标移动是其中之一,即将被移动的目标由屏幕的一个位置移动到另一个位置,直接一步到位移动,没有中间过程,会使人有生硬突然感,动感不强。为了实现良好的动感,必须根据目标的大小及移动距离的长短分成若干步来实现,每动一步先用底色覆盖原来的目标,再将移动目标复现在下一位置,这样逐步到达目的地。由于视觉暂留这一人的生理现象,人的肉眼所见此移动过程具有真实感。很多资料中又将这种动画实现方法叫做中间化。用此法还可以进行平移、变形、旋转等动画设计。
2.利用擦除法实现动画
擦除法动画设计方法在很多的动画制作工具中大量使用,它的设计原理是:利用同色原理,当图形色与背景色相同时人眼不能感知。在动画设计中,当一个位置画了一张图像并使图像色与背景色也相异,此时将先前画的图像在原位置再画一张,并使图像色与背景色相同,这样人眼只能看到新画的一张图像而看不到先前画的图像,从而先前画的图像被擦除了。这样连续画多张图像并在每画一张新的图像,将原来的图像擦除,在观察者看来就实现了动画的效果。擦除法动画设计便于操作,并且它的程序运行所需内存空间小,程序执行过程中不需要图形存入内存再从内存调出,节省了大量内存空间。
3.利用调色板实现动画
调色板是存放当前可用颜色的一张表,C语言定义了一个名为palette的预定义结构来存放调色板信息。该数据类型定义为:
# define MAXCOLCRS 15
Struct palettetype
{
Unsigned char size;
Unsigned char color
}
利用getpalette( )函数可以获取当前调色板的信息,其方法为;
Struct palettetype pa;
getpalette(
关键词: C语言 动画技术 实现方法 图形处理函数
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件、二维、三维图形和动画。利用C语言提供的图形处理函数设计动画程序,可以用于游戏娱乐、辅助教学、实验模拟和仿真等计算机辅助设计,具有较强的实用性。下面介绍几种C语言中图形动画技术的实现方法。
一、动画实现的原理
动画的制作原理类似于电影,它是利用了人的视觉效应,使一幅图像在不同时间和位置多次出现,从而产生动画效果。动画的实现其实主要依赖的是人的视觉残留作用,人的视觉有一种惰性,当看一幅画的时候这幅画的信息就保存在眼睛里了,即使这幅画突然消失,保存在眼睛里的信息还将保留一会儿(大约十分之一秒)。大脑的感觉就好像这幅画还存在似的。人不会感觉画面是断续的,从而产生动画的效果。因此动画就是由一连串许许多多的单幅图像,在程序中快速反复地循环显示而产生。因此我们可以用C语言提供的许多关于图形的函数来方便地实现动画,从前面的动画原理可以知道有两个关键的地方:一是图形图像的产生方式,要求产生的图像要准确。二是两幅图之间的转换,要求转换速度要快,不能产生闪烁感。只有这样实现的动画才逼真。
二、C语言动画设计常用方法
1.利用目标移动覆盖技术实现动画
动画的形式是多种多样的,目标移动是其中之一,即将被移动的目标由屏幕的一个位置移动到另一个位置,直接一步到位移动,没有中间过程,会使人有生硬突然感,动感不强。为了实现良好的动感,必须根据目标的大小及移动距离的长短分成若干步来实现,每动一步先用底色覆盖原来的目标,再将移动目标复现在下一位置,这样逐步到达目的地。由于视觉暂留这一人的生理现象,人的肉眼所见此移动过程具有真实感。很多资料中又将这种动画实现方法叫做中间化。用此法还可以进行平移、变形、旋转等动画设计。
2.利用擦除法实现动画
擦除法动画设计方法在很多的动画制作工具中大量使用,它的设计原理是:利用同色原理,当图形色与背景色相同时人眼不能感知。在动画设计中,当一个位置画了一张图像并使图像色与背景色也相异,此时将先前画的图像在原位置再画一张,并使图像色与背景色相同,这样人眼只能看到新画的一张图像而看不到先前画的图像,从而先前画的图像被擦除了。这样连续画多张图像并在每画一张新的图像,将原来的图像擦除,在观察者看来就实现了动画的效果。擦除法动画设计便于操作,并且它的程序运行所需内存空间小,程序执行过程中不需要图形存入内存再从内存调出,节省了大量内存空间。
3.利用调色板实现动画
调色板是存放当前可用颜色的一张表,C语言定义了一个名为palette的预定义结构来存放调色板信息。该数据类型定义为:
# define MAXCOLCRS 15
Struct palettetype
{
Unsigned char size;
Unsigned char color
}
利用getpalette( )函数可以获取当前调色板的信息,其方法为;
Struct palettetype pa;
getpalette(