一、问题
利⽤ C语⾔中的图形函数可以实现动画吗?怎样实现?
二、解答
动画其实就是快速切换的页⾯。如果动画中变化的元素⽐较集中,可以使⽤绘画、延时的⽅法来制作。例如,在下⾯的程序中,先绘制⼀个逆时针⽅向逐渐打开的圆,完全打开后,第⼆圈再按逆时针⽅向逐渐改变成淡颜⾊,第三圈擦除图形。
#include <stdio.h>
#include <math.h>
#include <graphics.h>
int main()
{int driver, mode;int i, maxx, maxy, x, y, r, colormax;detectgraph(&driver, &mode);initgraph(&driver, &mode, "d:\\tc");maxx = getmaxx() / 2;maxy = getmaxy() / 2;maxx < maxy ? maxx : maxy;colormax = getmaxcolor();for (i = 0; i < 360; i++){setcolor(i % colormax + 1);x = maxx + r * sin(i * 3.1416 / 180);y = maxy + r * cos(i * 3.1416 / 180);line(maxx, maxy, x, y);delay(10000);}sleep(1);for (i = 0; i < 360; i++){setcolor(i % 3 + 1);x = maxx + r * sin(i * 3.1416 / 180);y = maxy + r * cos(i * 3.1416 / 180);line(maxx, maxy, x, y);delay(10000);}sleep(1);setcolor(getbkcolor());for (i = 0; i < 360; i++){x = maxx + r * sin(i * 3.1416 / 180);y = maxy + r * cos(i * 3.1416 / 180);line(maxx, maxy, x, y);delay(10000);}closegraph();
}
三、总结
动画有很多种形式,上⾯讲的只是其中⼀种。只要知道它的基本原理,就可以作出各种形式的动画。