中易网

c语言动画编程

答案:2  悬赏:70  
解决时间 2021-01-05 04:27
c语言动画编程
最佳答案
看啊
一群星星在追老鼠!!
#include
#include
#include
#include
#define maxcircle 80
#define CR 1
main()
{union REGS r;
int dr=DETECT,mode=0;
int mx,my,mc;
int i, color[maxcircle];
double fx,fy,force=0;
double s,x[maxcircle],y[maxcircle];

initgraph(&dr,&mode,"");
r.x.ax=0;
int86(0x33,&r,&r);
r.x.ax=2;
int86(0x33,&r,&r);
for(i=0;i{color[i]=random(16)+1;
x[i]=random(640);
y[i]=random(480);
}

while(!kbhit())
{
r.x.ax=3;
int86(0x33,&r,&r);
mx=r.x.cx;
my=r.x.dx;
mc=r.x.bx;
for(i=0;i{
fx=mx-x[i];
fy=my-y[i];
s=sqrt(fx*fx+fy*fy+0.0012);
if(s!=0)
{
setcolor(0);
setfillstyle(1,0);

fillellipse(x[i],y[i],CR,CR);
setcolor(color[i]);
setfillstyle(1,color[i]);

force=random(30)/(double)10;

x[i]+=fx/s*force;
y[i]+=fy/s*force;

fillellipse(x[i],y[i],CR,CR);

}

}
if(mc==1)
{
cleardevice();
for(i=0;i{x[i]=random(640);
y[i]=random(480);
color[i]=random(16)+1;
fillellipse(x[i],y[i],CR,CR);
}
}

}
}
全部回答
学习目标
·平面动画的实现方法
·通过实例理解动画的制作,并能自己动手制作小动画
平面动画的实现方法
随着计算机技术的普及应用,动画技术作为计算机图形学的一部分, 已广泛用于制作动画片、游戏和进行辅助教学等方面。
所谓动画技术指的是屏幕上显示出来的画面或者其中的一部分,能够按照一定的规则及要求在屏幕上移动或变幻,从而实现由计算机显示的图形能够动态变换。可见,实现动画的关键在于图形生成、复现和消隐。产生动画所采用的方法,归结起来有以下几种:
(1)BITBLT动画,亦称图形阵列动画、快照动画和图形块,关键在于画面存储和重放,类似制作幻灯片,通过将整个动画过程划分为一个片断,作为一副画显示在屏幕的一个区域,在将屏幕图形像素存放在一个文件中;进行动态显示时,在将存储的图像释放,显示在指定画面,实现了动画效果。这种方法主要用于处理屏幕的一部分,需要经过内存申请(用于存储显示缓冲区中的一个矩形方块的图形数据)、读取位图并存入内存、再将内存中存储的图形数据置于显示器指定位置,同时释放内存供它用。这样,便得到了动画的效果。动画速度受到显示分辨率、显示模式及图形大小等限制。
(2)线框动画,亦称全屏动画,页面动画和迭代动画,关键在于图形页面的互换,利用计算机图形显示器在一定工作模式下具有多个页面的特点,并分别作为显示页和绘图页,图形在这两个页面上交换,实现实时动画。这种方法的处理对象是分别存放在不同图形页面上的一系列全屏图像,并通过一个独立的子程序以适当的顺序扫描有关页面,得到动画的效果。
(3)实时动画,亦称现场动画、乒乓动画、隐藏页面动画和动态页面动画,与上述两种方法有本质区别。前面两种方法都是在开始动画序列之前,已经将所有图像画好,并存储起来;而实时动画则是在动画开始时才绘制图像,需要分时处理图像生成和动画实现。
(4)色彩循环动画,利用调色板设置指令,来改变图像颜色,让可见图像消失为背景,同时又立即使用第二条调色板设置指令恢复另一幅图像的正确颜色。两幅图像交替出现,不断重复(即图像本色与背景色),便获得实时动画效果。
小车
#define PI 3.1415926
#define step 10
#define R 10
#include
#include
#include
#include
#include
main()
{
int gdriver=DETECT,gmode;
static int startx=5;
static int starty=100;
int maxx,l=1,n=1;
double dalta=20,angle;
int size;
void *image;
initgraph(&gdriver,&gmode,"");
cleardevice();
setbkcolor(BLUE);
size=imagesize(startx,starty,startx+60,starty+60);
image=(unsigned char *)malloc(size);
maxx=getmaxx();
while(!kbhit())
{
if(l==1)
{
n++;
angle=-1*(n*step)/PI*180/R;
if((int)(-1*angle)%360 angle-=dalta;
if(n>(maxx-70)/step)
l=0;
}
if(l==0)
{
--n;
angle=-1*(n*step)/R/PI*180;
if((int)(-1*angle)%360 angle-=dalta;
if(n==1)l=1;
}
rectangle(startx+n*step,starty,startx+n*step+60,starty+40);
pieslice(startx+n*step+15,starty+50,angle,angle-dalta,10);
pieslice(startx+n*step+45,starty+50,angle,angle-dalta,10);
setcolor(GREEN);
setfillstyle(SOLID_FILL,GREEN);
circle(startx+n*step+15,starty+50,10);
circle(startx+n*step+45,starty+50,10);
circle(startx+n*step+15,starty+50,3);
circle(startx+n*step+45,starty+50,3);
getimage(startx+n*step,starty,startx+n*step+60,starty+60,image);
delay(100);
putimage(startx+n*step,starty,image,XOR_PUT);
}
free(image);
closegraph();
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
想买一个cf神器号最好是山一
国内钢琴品牌中有哪些专门生产德系钢琴的?
20米风水尺 鲁班尺阴宅风水怎么用
上海在职MBA 国际免联考的有哪些
女子出嫁用红妆还是红装形容
晶振的工作温度是-20°C~70°C,在-25°C时对
上海轮渡几点关闭
请问皖N9335警车是什么地方
牙轮钻机在松软地面移动行走时,其移动速度要
wow7.0幽光鱼竿怎么样升级
文科生高考540分难不难
我发现我这个人性子有点淡,不喜争,不喜抢,
摩代美甲地址在什么地方,想过去办事
父母要搬家,我该怎么阻止
碱水面是什么面?
推荐资讯
QC巡检怎么定标准
go和now猫粮哪个好
只认为自己是对的,不管别人说什么都是错
通常电动机4KW以上用三角形连接,4KW以下用星
北京公园那么贵,到底好在哪
lol色盲模式在哪里设置?
玩具检测中,有个不合格项目叫“可预见的合理
嵩县洛阳中国信合(九店信用社)在什么地方啊,
如何用IC555和功率放大集成电路制作无线发报
灌篮高手,重新看了便漫画,原来三井国中是全
为什么24楼不适合儿童住
结合实际谈谈良好,崇高道德的作用。
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?