利用图形页实现动画的方法
计算机图形的动画显示实际上是一系列静止图像在不同位置的重放,大部分动态现实程序模拟运动的基本方法是相同的,即在屏幕某一显示位置上先擦出一个静止图像,然后在临近的位置上绘出下一副图,程序重复的执行擦出和绘制过程,就产生所需要的动画效果.这种动画方式对于简单的图形效果是很好的,但对于较为复杂的图形来说,效果就不是很好了,为了解决这一问题,用多页显示绘图的方法很有效
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
#include <math.h>
main()
{void * ptr;
int gd=DETECT,gm;
float i;
initgraph(&gd,&gm,"d:\\tc");
setactivepage(1);
setcolor(RED);
setfillstyle(1,14);
fillellipse(10,10,10,10);
ptr=malloc(imagesize(0,0,20,20));
getimage(0,0,20,20,ptr);
randomize();
setactivepage(0);
for(i=0;i<3000;i++)
putpixel(random(640),random(480),random(15));
for(i=0;i<6.28*4;i=i+0.005)
{putimage(300+8*(cos(i)+i*sin(i)),240+6*(sin(i)-i*cos(i)),ptr,COPY_PUT);
putimage(300+8*(cos(i)+(i)*sin(i)),240+6*(sin(i)-(i)*cos(i)),ptr,COPY_PUT);
if(kbhit()) break;
delay(10);
}
getch();
closegraph();
}