总结一下这几天来用GLUT开发的心得,个人感觉只要线性代数基本功够、立体几何学的好,再加上不错的C语言功底,学起来还是蛮快的。另外,感觉老外的程序条理还是非常清晰的!
一个典型的程序有以下几个部分:
1.头文件,最常用的是如下两个,有时候也会加上stdio.h
#include <GL/glut.h>
#include <stdlib.h>
2.初始化子函数,用于初始化颜色、矩阵等。
void init(){ }
3.显示子函数,需要显示的内容都写在这里。
void display() { }
4.重绘子函数,当显示的窗口发生变动(如拉伸、移动)时自动调用此函数。
void reshape() { }
5.键盘事件子函数(可选)
void keyboard(unsigned char key, int x, int y) { }
6.鼠标事件子函数(可选)
void mouse(int button, int state, int x, int y) { }
7.主函数,看英文函数名就基本能明白什么意思了。
void main (int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow("OpenGL Test");
init();
glutReshapeFunc(reshape);
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();
}
tengjingshu_112148725 2009-7-15 09:02