文档介绍:计算机图形学
Computer Graphics
王汝传 ******@njupt.
黄海平 ******@njupt.
林巧民 ******@njupt.
教材:《计算机图形学》王汝传等编著人民邮电出版社
第九章计算机动画实践
计算机动画编程
计算机动画软件
3DS MAX动画制作
C 动画编程
C++动画编程
C++
动画编程
二. 刚体动画实例
一. 二维动画软件
二. 三维动画软件
第九章计算机动画编程
计算机图动画编程
目前计算机动画制作软件的功能已经非常强大,可以用来快速设计制作很多的动画效果,但是毕竟这种动画的制作方式是要受限于所采用软件的内部算法的,因此从灵活性角度看,编程动画有其不可替代性。
在进行动画编程时,可利用的功能函数库越强大,则编程难度相应越小,下面就依据可利用功能函数库的不同,分别介绍三种不同的动画编程环境。
第九章计算机动画编程
一. Turbo C 图动画编程
Turbo C的编程环境要求编程者在Graphics函数库的帮助下进行动画编程,该类环境对于编程者的要求较高,尤其是编写复杂的动画程序(如试图进行三维动画编程)相当之不易,毕竟编程者可以利用的Graphics函数库实在是有点简单了,它不直接提供对3D程序设计的支持。
第九章计算机动画编程
基于Turbo C环境进行动画编程可以采用以下方法:
1、cleardevice()
2、cleanviewport()
3、getimage()与putimage()
4、setvisualpage()与setactivepage()
全局的画-擦-画
局部的画-擦-画
多页切换
第九章计算机动画编程
采用delay()函数对一些图形的生成进行相应的延时,有时也可以产生不错的动画效果,比如涉及图形的几何变换或者填充等;
另外,利用数学函数或数学方程式,根据自变量和因变量的关系,让自变量在一个允许的值变化范围中以某一步长逐渐增值或者减值,进行连续的循环,也能获得图形的连续变化动画;
在实际应用中,经常将各种动画方法组合起来使用,因为组合动画往往能产生比单一技术动画更为令人满意的效果。
第九章计算机动画编程
Turbo C 动画编程实例
人造卫星运动动画。在繁星闪烁的夜色背景上,绘出一个由轨道环绕蔚蓝色地球的造型,然后一颗卫星由左至右不断地从屏幕上掠过,屏幕下方同时显示有“HELLO”的放大字样,整个画面生动美观。
思路???
第九章计算机动画编程
运动圆圈。
void circles(int x,int y)
{
int i;
for(i=0;i<60;i++)
circle(x+60*cos(i),y+60*sin(i),20);
}
main( )
{
…/*图形模式初始化代码*/
setcolor(15);
for(i=0;;i++)
{
y=i;
if(i==480) i=0;
circles(320,y);
delay(2000);
cleardevice();
if(kbhit()) break;
}
}
第九章计算机动画编程
二、基于OpenGL的Visual C++动画编程
为了减轻动画编程的负担,编程者通常都会寻求更强大函数库的支持,比如OpenGL。GL是美国SGI公司为图形工作站开发的一种功能强大的三维图形机制,经过长期发展,在跨平台移植的过程中,由GL扩充形成了OpenGL,目前,它已经成为高性能图形和交互式视景处理的工业标准。有了OpenGL的帮助,编程者可以轻松地进行三维动画的程序设计。
第九章计算机动画编程
OpenGL提供的相关库有:
1)OpenGL核心库(GL)
2)OpenGL实用库(GLU)
3)OpenGL辅助库(GLAUX)
4)OpenGL工具库(GLUT)
5)OpenGL对窗口系统的扩展
提供的函数主要用于常规的、核心的图形处理,是OpenGL的核心部分,它包含300多个函数,函数名前缀一律是“gl”,在Windows平台上,头文件为“”,库文件为“”,动态链接库为“”,在所有的OpenGL平台上核心库一般都是必备的。
提供的函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。如:坐标变换、纹理映射、绘制椭球、茶壶等,它包含约50个函数,函数名前缀一律是“glu”,Windo