`
v5qqcom
  • 浏览: 1285257 次
文章分类
社区版块
存档分类
最新评论

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(); // 正方形绘制结束

分享到:
评论

相关推荐

    OpenGL 库函数汇总(中文分类)CHM

    这是一个家族性质的函数集合,并没有glColor()这个函数。其包含的函数如下: void glColor3b(GLbyte red , GLbyte green , GLbyte blue) void glColor3d(GLdouble red , GLdouble green , GLdouble blue) void ...

    OPENGL绘图控件

    超简洁的OPENGL三维绘点控件,包括放大缩小,旋转平移,点颜色设置。接口简单。

    用opengl绘制一个旋转正方体.cpp

    //这个函数其实就是对接下来要做什么进行一下声明 GL_MODELVIEW 模型视图 glLoadIdentity(); glPushMatrix();// 提供了相应的接口 { glRotatef(AngleX, 1.0f, 0.0f, 0.0f); glRotatef(AngleY, 0.0f, 1.0f, ...

    OpenGl实验报告.doc

    实验目的与要求 1、学习和掌握OpenGL的使用 2、掌握矩阵堆栈的实现方法 3、根据自己的创意实现实验内容,进一步掌握和理解OpenGL的使用 2. 实验内容 1、请编写地球围绕太阳自动旋转的方式 2、请再加上一个月亮, 并...

    OpenGL 混合

    更进一步,我们可以使用glColor4f()来代替glColor3f()。 绝大多数人都认为Alpha分量代表材料的透明度。这就是说,alpha值为0.0时所代表的材料是完全透明的。alpha值为1.0时所代表的材料则是完全不透明的。 混色的...

    openg颜色参数设置

    opengl各种颜色的参数如何设置,例如: RGB颜色参数 基本颜色:蓝色 ——————— 钴制深蓝; 60 90 170 闪蓝色 : 30 144 255 靛青 : 8 46 84 深蓝 : 25 25 112 藏青 : 0 0 28 菘蓝 : 131 147 202 ...

    opengl画旋转多边形

    glColor3f(1.0,0,0); //设置红色绘图颜色 glBegin(GL_POLYGON); //开始绘制六边形 for (int i=0;i;i++) glVertex2f( R*cos(theta+i*2*PI/n), R*sin(theta+i*2*PI/n)); glEnd(); glutSwapBuffers(); //双缓冲的...

    opengl20面体

    opengl 20面体#include #define X .525731112119133606 #define Z .850650808352039932 static GLfloat vdata[12][3] = {//各顶点坐标 {-X,0.0,Z},{X,0.0,Z},{-X,0.0,-Z},{X,0.0,-Z}, {0.0,Z,X},{0.0,Z,-X},{0.0...

    opengl画图程序附带源代码

    glColor3f(0.5f,0.5f,1.0f); aa(); cc(); bb(); // Reset The Current Modelview Matrix return TRUE; // Keep Going } GLvoid KillGLWindow(GLvoid) // Properly Kill The Window { if (fullscreen) // Are We ...

    OpenGL绘制简单地形及坐标旋转

    void OpenGL::playBoxWithTextureAndLight() { GLfloat MatAmbient[]= { 0.8f, 0.8f, 0.8f, 1.0f };//定义地面的材质 GLfloat MatDiffuse[]= { 0.5f, 0.5f, 0.5f, 1.0f }; GLfloat MatSpecular[]= { 1.0f, 1.0f, ...

    opengl读取obj文件显示三维图像的C程序

    显示的内容是牛的图案,所用的...调用语句glColor3fv(vertexcolor[face[m][i]-1]);glVertex3fv(vertex[face[m][i]-1]);设置顶点坐标和顶点颜色,glBegin()参数设置为GL_TRIANGLES绘制三角形。在主函数中将图形显示出来。

    opengl 3d文字

    glColor3f(1.0f * (float)cos(rot / 20.0f), 1.0f * (float)sin(rot / 25.0f), 1.0f - .5f * (float)cos(rot / 17.0f)); glPrint("Active opengl outline f 是ont text with NeHe - %7.2f", rot / 50);

    opengl的太阳系模型

    //对齐像素字节函数 glGenTextures(1,texName); //第一个参数指定表明获取多少个连续的纹理标识符 glBindTexture(GL_TEXTURE_2D , *texName); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); ...

    OpenGL.rar_glLoadIdentity

    OpenGL simple examples. glLoadIdentity() glClear(GL_COLOR_BUFFER_BIT) glBegin(GL_POLYGON) glColor4f(1.0f, 0.0f, 0.0f, 1.0f) glVertex2f(100.0f, 50.0f) glColor4f(0.0f, 1.0f, 0.0f, 1.0f) ...

    gertt点阵图读取器(opengl)

    glColor3f(0.0,1.0,0.0); while(bc) { if(ax[bc]==1) { ba=bc%100; bb=(bc-ba)/100; glBegin(GL_QUADS); // Draw A Quad glVertex3f(-0.5f+ba, -0.5f+bb, -1.0f); // Top Left glVertex...

    基于SDI的opengl程序框架

    在OpenGL01View.cpp的DrawScene()中修改代码即可.如在 程序中DrawScene()添加以下代码: glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存 glLoadIdentity(); // 重置...

    opengl橡皮筋

    glColor3f(1, 0, 1); glVertex3f(-1, -1, 0); glColor3f(1, 0, 1); glVertex3f(-3, -1, 0); glColor3f(1, 0, 1); glVertex3f(1, -1, 0); glColor3f(1, 0, 1); glVertex3f(-1, -2, 0); glEnd(); ...

    opengl实验报告(1).doc

    " "目 "3、掌握使用opengl函数绘制基本图元,如点、线、封闭的多边形等。" "的 " " "实 " 学会如何在vc++6.0中配置opengl的运行环境 " "验 " " "要 " " "求 " " "实 "在visual c++编程环境中编写程序源代码,并编译...

    OpenGL初学者范例代码第一课

    glColor3f(1.0, 1.0, 1.0); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); ...

    三角形 OPenGL

    glColor3f (1.0, 0.0, 0.0); if (n==0) return ; glBegin(GL_LINE_LOOP); glVertex2f(x1, y1); glVertex2f(x2, y2); glVertex2f(x3, y3); glEnd(); drawline(x1,y1,(x1+x2)/2.0,(y1+y2)/2.0,(x3+x1)/2.0,...

Global site tag (gtag.js) - Google Analytics