资源描述:
《英语人名分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、OpenGL编程河南科技大学电信学院主讲:刘刚FaceOpenGL编程Ls1Chap2OpenGL中的二维编程Chap2OpenGL编程Ls2Simple1.c1#includevoiddisplay(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POLYGON);glVertex2f(-0.5,-0.5);glVertex2f(-0.5,0.5);glVertex2f(0.5,0.5);glVertex2f(0.5,-0.5)
2、;glEnd();glFlush();}voidmain(intargc,char*argv[]){glutInit(&argc,argv);glutCreateWindow("Simple.C");glutDisplayFunc(display);glutMainLoop();}初始化OpenGL定义要描绘的图形实体使用GLUT库函数,glut.h中已包含gl.h、glu.hOpenGL编程Ls3Simple1.c2voidmain(intargc,char*argv[]){glutInit(
3、&argc,argv);glutCreateWindow(“Simple.C");glutDisplayFunc(display);glutMainLoop();}初始化GLUT,在其它OpenGL和GLUT函数之前调用。在屏幕的默认位置创建并显示一个窗口,标题由实参指定,函数返回一整数,便于在多窗口状态下引用。显示回调函数,每次重画窗口时,都调用display()函数。display()函数要求没有参数,需要时可使用全局变量。事件循环处理,应该是main()函数中的最后一个语句。回调函数与事件
4、循环OpenGL编程Ls4显示回调函数voidglutDisplayFunc(void(*f1)(void))窗口每次需要重画时,都会调用f1()函数。f1()格式固定,无参数。可用全局变量在函数之间传值OpenGL编程Ls5voidglutMainLoop()导致程序进入一个事件处理循环。它是main函数的最后一个语句。OpenGL编程Ls6Simple1.c3voiddisplay(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POLYGON);
5、glVertex2f(-0.5,-0.5);glVertex2f(-0.5,0.5);glVertex2f(0.5,0.5);glVertex2f(0.5,-0.5);glEnd();glFlush();}清除颜色缓存,可用逻辑运算OR一次清除几种缓存定义一个图形(多边形)的顶点列表,以函数glBegin(mode)开始,函数glEnd()结束。指定一个顶点的位置二维,浮点数强制执行缓存好的opengl命令编辑运行OpenGL编程Ls7Simple2.c1voidmain(intargc,cha
6、r*argv[]){glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE
7、GLUT_RGB);glutInitWindowSize(600,600);glutInitWindowPosition(200,200);glutCreateWindow(“Simple1.C");glutDisplayFunc(display);glutMainLoop();}指定窗口类型,单缓存,RGB颜色,用逻辑运算OR组合。指定窗口在屏幕上的初始大小。指定窗口在
8、屏幕上的初始位置。修改窗口属性编辑运行OpenGL编程Ls8Simple2.c2voidmain(intargc,char*argv[]){glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE
9、GLUT_RGB);glutInitWindowSize(600,600);glutInitWindowPosition(200,200);glutCreateWindow(“Simple1.C");glutDisplayFunc(display);gl
10、ClearColor(0.0f,0.0f,0.0f,0.0f);glColor3f(0.8f,0.0f,0.0f);glutMainLoop();}指定清除颜色,使用RGBA颜色。指定绘图颜色,设置颜色查glut.h中相关函数编辑运行OpenGL编程Ls9Colorvoidmain(intargc,char*argv[]){glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE
11、GLUT_RGB);glutInitWindowSize(600,6