计算机图形学实验五——简单动画的实现

Posted 大灬白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机图形学实验五——简单动画的实现相关的知识,希望对你有一定的参考价值。

【实验名称】 简单动画的实现
【实验目的】
(1)指定图形运动轨迹,实现物体的移动过程和移动速度控制;
【实验原理】
1)简单动画的原理:显示一个对象,然后把它抹去,把这个图形进行变换后,再在新位置予以显示.当上述过程重复执行时,在视觉上便产生了运动。
【实验内容】
1.图形的移动
显示两个图形,然后移动其中一个图形.当被移动的图形超出屏幕范围时,输
出错误信息“Coordinate out of range”并结束。

【源代码】

#include<graphics.h>
#include<stdio.h>
#include<conio.h>

void delay()//控制图形移动的速度
{
	for(int i=0;i<300;i++)
		for(int j=0;j<300;j++)
			for(int k=0;k<300;k++);
}

int main()
{
	IMAGE w;
	int driver=DETECT,mode;
	initgraph(&driver,&mode,"");
	setbkcolor(GREEN);
	getimage(&w,1,1,100,100);
	for(int i=1;i<400;i++)
	{
		putimage(i+20,100,&w,0);/*清除当前矩形*/
		putimage(i+20,100,&w,1);/*在新位置显示矩形*/
		if(i>=400)
		{
			printf("Coordinate  out  of  range\\n");
			return 0;
		}
		setcolor(YELLOW);//将未移动的图形的边框置为黄色
		rectangle(100,100,200,200);
		delay();
		cleardevice();
	}
	getch();
	closegraph();
    return 0;
}

【实验截图】

【小结或讨论】
本次实验是简单动画的实现。该实验的原理为:显示一个对象,然后把它抹去,把这个图形进行变换后,再在新位置予以显示.当上述过程重复执行时,在视觉上便产生了运动。
在本次实验中,使用了一个delay函数,用以控制图形的移动速度。使用了两个putimage(x,y,p,op)函数,当op=0时,清除当前矩形;op=1时,显示新位置图形。
总体来说,此次实验比较简单,主要就是各类函数的使用。通过此次实验,我对图形运动有了更加深刻地理解,但代码的实现还需要多加练习。

以上是关于计算机图形学实验五——简单动画的实现的主要内容,如果未能解决你的问题,请参考以下文章

如何用OpenGL实现计算机图形学中的平移动画

手把手制作太阳系运行模型,纹理贴图模型变换动画计算机图形学(OpenGLC++实现超级详细)

手把手制作太阳系运行模型,纹理贴图模型变换动画计算机图形学(OpenGLC++实现超级详细)

计算机图形学第一次实验

计算机图形学实验六——线型和线宽

计算机图形学实验三——自由曲线的绘制消隐