在glBegin()和glEnd()之间可调用的函数
函数 | 函数意义 |
glVertex*() | 设置顶点坐标 |
glColor*() | 设置当前颜色 |
glIndex*() | 设置当前颜色表 |
glNormal*() | 设置法向坐标 |
glCoord*() | 产生坐标 |
glCallList(),glCallLists() | 执行显示列表 |
glTexCoord*() | 设置纹理坐标 |
glEdgeFlag*() | 控制边界绘制 |
glMaterial*() | 设置材质 |
glVertex3f()表示了该函数属于 gl库,参数是三个float型参数指针。我们用glVertex*()来表示这一类函数。
几何图元类型和说明
类型 | 说明 |
GL_POINTS | 单个顶点集 |
GL_LINES | 多组双顶点线段 |
GL_POLYGON | 单个简单填充凸多边形 |
GL_TRAINGLES | 多组独立填充三角形 |
GL_QUADS | 多组独立填充四边形 |
GL_LINE_STRIP | 不闭合折线 |
GL_LINE_LOOP | 闭合折线 |
GL_TRAINGLE_STRIP | 线型连续填充三角形串 |
GL_TRAINGLE_FAN | 扇形连续填充三角形串 |
GL_QUAD_STRIP | 连续填充四边形串 |
// OpenGLDemo.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include#include const int n = 1000; const GLfloat R = 0.5f; const GLfloat Pi = 3.1415926536f; const GLfloat factor = 0.1f; void myDisplay(void) { ///第一个程序----矩形 //glClear(GL_COLOR_BUFFER_BIT); //glRectf(-0.5f, -0.5f, 0.5f, 0.5f); //glFlush(); ///第二个程序----圆 //int i; //glClear(GL_COLOR_BUFFER_BIT); //glBegin(GL_POLYGON);//有顶点就必须要有glBegin() glEnd(); //for(i=0; i C->E->B->D->A的顺序,将五角星画出 glBegin(GL_LINE_LOOP);//闭合折线 glVertex2fv(PointA); glVertex2fv(PointC); glVertex2fv(PointE); glVertex2fv(PointB); glVertex2fv(PointD); glEnd(); glFlush(); ///第四个程序----画出正弦函数图形 //GLfloat x; //glClear(GL_COLOR_BUFFER_BIT); //glBegin(GL_LINES); //glVertex2f(-1.0f, 0.0f); //glVertex2f(1.0f, 0.0f); // 以上两个点可以画x轴 //glVertex2f(0.0f, -1.0f); //glVertex2f(0.0f, 1.0f); // 以上两个点可以画y轴 //glEnd(); //glBegin(GL_LINE_STRIP); //for(x=-1.0f/factor; x<1.0f/factor; x+=0.01f) //{ // glVertex2f(x*factor, sin(x)*factor); //} //glEnd(); //glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400); glutCreateWindow("第一个OpenGL程序"); glutDisplayFunc(&myDisplay); glutMainLoop(); return 0; }
效果图如下所示: