OpenGL函数思考-glColor

OpenGL函数思考-glColor

函数原型:

     glColor3b,glColor3d,glColor3f,glColor3i,glColor3s,glColor3ub,glColor3ui,glColor3us,glColor4b,glColor4d,glColor4f,glColor4i,glColor4s,glColor4ub,glColor4ui,glColor4us,glColor3bv,glColor3dv,glColor3fv,glColor3iv,glColor3sv,glColor3ubv,glColor3uiv,glColor3usv,glColor4bv,glColor4dv,glColor4fv,glColor4iv,glColor4sv,glColor4ubv,glColor4uiv,glColor4usv

      例子:void glColor3f(GLfloatred, GLfloatgreen,GLfloat blue)

函数说明:

      设置当前颜色。如下例子

例1:绘制一个平滑过度填充色的三角形和一个平面着色的四边形

 

  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);  // 根据glClearColor和glClearDepth指定的值清除颜色和深度缓存
  glLoadIdentity();                                     // 重置当前指定的矩阵为单位矩阵

 

  ..........................................三角形...........................................

  //当您调用glLoadIdentity()之后,您实际上将当前点移到了屏幕中心,
  //X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从里至外。
  //OpenGL屏幕中心的坐标值是X和Y轴上的0.0f点。
  //中心左面的坐标值是负值,右面是正值。移向屏幕顶端是正值,移向屏幕底端是负值。移入屏幕深处是负值,移出屏幕则是正值。
  glTranslatef(-1.5,0.0,-6.0); // 左移 1.5 单位,并移入屏幕 6.0

   //glEnd()出现后,三角形将被填充。因为每个顶点有不同的颜色,因此看起来颜色从每个角喷出,并刚好在三角形的中心汇合,
  //三种颜色相互混合,这就是平滑着色
  glBegin(GL_TRIANGLES); // 绘制三角形(逆时针画出来的三角形才是正面朝着我们的)
    glColor3f(1.0,0.0,0.0);     // 设置当前色为红色
    glVertex3f(-1.0,-1.0, 0.0); // 左下顶点(//glVertex 的第一个参数是X坐标,然后依次是Y坐标和Z坐标)
    glColor3f(0.0,1.0,0.0);     // 设置当前色为绿色
    glVertex3f( 1.0,-1.0, 0.0); // 右下顶点
    glColor3f(0.0,0.0,1.0);     // 设置当前色为蓝色
    glVertex3f( 0.0, 1.0, 0.0); // 上顶点
  glEnd(); // 三角形绘制结束

  ..........................................正方形...........................................

  //在屏幕的左半部分画完三角形后,我们要移到右半部分来画正方形。
  //这次右移,所以X坐标值为正值。因为前面左移了1.5个单位,
  //这次要先向右移回屏幕中心(1.5个单位),再向右移动1.5个单位。总共要向右移3.0个单位。
  glTranslatef(3.0,0.0,0.0); // 右移3单位

  glColor3f(0.5,0.5,1.0); // 一次性将当前色设置为蓝色
  glBegin(GL_QUADS);      // 绘制正方形(逆时针画出来的正方形才是正面朝着我们的)
    glVertex3f(-1.0,-1.0, 0.0); // 左下
    glVertex3f( 1.0,-1.0, 0.0); // 右下
    glVertex3f( 1.0, 1.0, 0.0); // 右上
    glVertex3f(-1.0, 1.0, 0.0); // 左上
  glEnd(); // 正方形绘制结束

 

 

时间: 2024-10-02 12:50:53

OpenGL函数思考-glColor的相关文章

OpenGL函数思考-glMatrixMode

OpenGL函数思考-glMatrixMode  函数原型:        void glMatrixMode(GLenum mode) 参数说明:        mode 指定哪一个矩阵堆栈是下一个矩阵操作的目标,可选值: GL_MODELVIEW,对模型视图矩阵堆栈应用随后的矩阵操作.可以在执行此命令后,输出自己的物体图形了. GL_PROJECTION,对投影矩阵堆栈应用随后的矩阵操作.可以在执行此命令后,为我们的场景增加透视. GL_TEXTURE,对纹理矩阵堆栈应用随后的矩阵操作.可以

OpenGL函数思考-gluLookAt

OpenGL函数思考-gluLookAt 函数原型:       void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz) 参数说明:       eyex, eyey,eyez 指定视点的位置 centerx,centery,centerz 指定参考点的位置

OpenGL函数思考-glClear

OpenGL函数思考-glClear 函数原型:       void glClear(GLbitfield mask); 参数说明:       GLbitfield:可以使用 | 运算符组合不同的缓冲标志位,表明需要清除的缓冲,例如glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)表示要清除颜色缓冲以及深度缓冲,可以使用以下标志位       GL_COLOR_BUFFER_BIT:    当前可写的颜色缓冲       GL_DEPTH_B

OpenGL函数思考-glBlendFunc

OpenGL函数思考-glBlendFunc 函数原型:      void glBlendFunc(GLenum sfactor,GLenum dfactor)参数说明:       sfactor:源颜色系融合方法,可取如下值GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_COLOR, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, and

OpenGL函数思考-glLoadIdentity

OpenGL函数思考-glLoadIdentity 函数原型:      void glLoadIdentity(void) 函数说明:       OpenGL为我们提供了一个非常简单的恢复初始坐标系的手段,那就是调用glLoadIdentity()命令.该命令是一个无参的无值函数,其功能是用一个4×4的单位矩阵来替换当前矩阵,实际上就是对当前矩阵进行初始化.也就是说,无论以前进行了多少次矩阵变换,在该命令执行后,当前矩阵均恢复成一个单位矩阵,即相当于没有进行任何矩阵变换状态.       单

OpenGL函数思考-glTexImage2D

OpenGL函数思考-glTexImage2D 函数原型:       void glTexImage2D(GLenum target,GLint level,GLint components,GLsizei width, glsizei height,GLint border,GLenum format,GLenum type, const GLvoid *pixels); 函数说明:       定义一个二维纹理映射.其中       参数target是常数GL_TEXTURE_2D.   

OpenGL函数思考-glOrtho

  OpenGL函数思考-glOrtho 函数原型: void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far) 参数说明: 函数说明:         glOrtho()这个函数设置正摄投影矩阵,一般在执行命令glMatrixMode(GL_PROJECTION)和glLoadidentity()之后使用:使用glOrtho函数可以将当前的可视空间设置为正投

OpenGL函数思考-gluPerspective

OpenGL函数思考-gluPerspective 函数原型:       void gluPerspective(GLdouble fovy, GLdouble aspect,GLdouble zNear,GLdouble zFar) 参数说明:       fovy:    指定视景体的视野的角度,以度数为单位,y轴的上下方向 aspect:指定你的视景体的宽高比(x 平面上) zNear: 指定观察者到视景体的最近的裁剪面的距离(必须为正数) zFar:    指定观察者到视景体的最远的裁

OpenGL函数思考-glRotatef

OpenGL函数思考-glRotatef 函数原型:       void glRotated(GLdouble angle,GLdouble x,GLdouble y,GLdouble z)       void glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLdouble z) 函数说明:      这两个函数用来计算旋转矩阵,该矩阵围绕原点到点(x,y,z)的向量逆时针旋转angle度.