1 / 17
文档名称:

计算机图形学课程设计--皮球运动动画.doc

格式:doc   页数:17
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

计算机图形学课程设计--皮球运动动画.doc

上传人:DOC KING 2011/12/2 文件大小:0 KB

下载得到文件列表

计算机图形学课程设计--皮球运动动画.doc

文档介绍

文档介绍:皮球运动动画
设计方案
圆皮球从某竖直高度以横向速度抛出,落地,弹起,最终静止。设弹起后所能上升的高度为上一次最大高度的4/5,实现运动轨迹动画。
整个设计包括两个方面,一是掌握动画的基本原理,二是圆的绘制。动画是将静止的画面变为动态的艺术。实现由静止到动态,主要是靠人眼的视觉残留效应。利用人的这种视觉生理特性可制作出具有高度想象力和表现力的动画影片。
动画中的皮球要用到中点画圆算法画圆, void MidCircle(int x0, int y0, int r)定义圆心的坐标和圆半径,, , ,glClearColor定义显示框的背景颜色,int cx=100,cy=300,cr=20定义圆开始运动时的水平位置,垂直高度和体积大小,glClearColor定义显示框的背景颜色,int windowswidth = 1000,windowshight = 500定义显示框的宽度和高度。 void Init()用来初始化,void myDisplay()用来显示,glLoadIdentity()为加载身份,void RenderScene(void)为渲染现场,void TimerFunction(int value)为计时器功能。
程序流程图
floatmo;
returnmColor;
=KaIa+*Kd*theta+*Ks*pow(alpha,n);
alpha<0
alpha=*+*+*;
theta<0
VectorN;
d+=deltax;
NO
glVertex2i(x+x0,y+y0);
d<0
glEnd();
x<y
intx,y,deltax,deltay,d;
mColor=Phong(x0,y0,r,i+x0,x+y0);
}
WHILE
mColor=Phong(x0,y0,r,i+x0,y+y0);
i++
i<=y
i=-y
i++
i<=x
i=-x
intx,y,deltax,deltay,d;
glClear(GL_COLOR_BUFFER_BIT);
glViewport(0,0,(GLsizei)w,(GLsizei)h);
glClear(GL_COLOR_BUFFER_BIT);
flag=1;
YES
t=sqrt(2*h/g);
Multi
flag==1
cy-cr>0&&cx+cr<windowswidth&&up==0
h>1
floatt=0,vv,s,hv;
return0;
glutInit(&argc,argv);
三、程序清单
#include <GL/>
#include <>
#include <>
#include <>
#define NO_LIGHT 1
#define LIGHT 2
bool bLight = false;
struct Vector
{
float fx, fy, fz;
};
struct Color
{
float Ir, Ig, Ib;/*定义皮球的颜色*/
};
float KaIa;
float Kd, n;
Vector H,light;
Color mLight, mColor;
int cx=100,cy=300,cr=20;/*定义皮球开始运动时的水平位置,下落高度和体积大小*/
int windowswidth = 1000,windowshight = 500;/*定义显示框的宽度和高度*/
int xstep=0,ystep=0,flag=10,up=0;
float vh =4,g=,h=cy;
void Init()
{
float mo;
Vector eye;
= 200;
=20;
=200;/*定义皮球的颜色*/
KaIa=100;
Kd = ;
n = 20;
=;=;
= sqrt(1-(*)-(*));
=1;=0;=1;
=+;
=+;
=+