一、问题
利⽤ 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();
}
三、总结
动画有很多种形式,上⾯讲的只是其中⼀种。只要知道它的基本原理,就可以作出各种形式的动画。