- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言中动画技术实现方法
C语言中动画技术实现方法摘 要: 动画具有突出并强化事物特征、实现工作模拟、进行图形变换等多种功能,使所开发的软件科学合理、生动形象。本文介绍了动画的基本原理及利用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(pa);
以上语句执行后,当前调色板信息就存放于结构pa中了。
用调色板产生动画的基本思想是使用不同的颜色在屏幕上绘制图形。然后改变调色板中的颜色,这时图形中的所有对象立即改变颜色,就好像它们在新位置上重新绘制一样。这样将颜色变化序列化,即可制造出动画效果来。由于是通过改变调色板实现动画的,不需要重新绘制每一幅画面,因而显示速度非常快,并能产生独特的动画效果。由此可见,调色板动画必须靠改变调色板中的颜色来实现。这在Turbo C有可以通过setpalette( ),setrgbpalette( )和setall palette( )这三个函数来实现。
三、基于TC环境中的graphics.h
Turbo C提供了非常丰富的图形函数,所有图形函数的原型均在graphics. h中,使用图形函数时要确保有显示器图形驱动程序*BGI,同时将集成开发环境Options/Linker中的Graphicslib选为on,只有这样才能保证正确使用图形函数。图形模式的初始化不同的显示器适配器有不同的图形分辨率。即使是同一显示器适
文档评论(0)