资源描述:
《图元的属性课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章图元的属性曾智勇福建师范大学软件学院主要内容:颜色和灰度OpenGL几何图元和属性PointLinepolygonCharacterAntialiasing颜色和灰度颜色空间:RGBHSVHLSLab灰度:当RGB函数中指定相同量的红色,绿色和蓝色时,结果是某种程度的灰色.其它的颜色参数强度(Intensity):物理学术语,用来量化一个时间段中在特定方向的光能辐射.光亮度(Luminance):心理学术语,用来描述感觉光亮的特征.颜色存储RGBIndex(colorlookuptable;color
2、map)OpenGL颜色函数设定颜色显示模型glutInitDisplayMode(modeparameters);帧缓存模式:GLUT_SINGLE,GLUT_DOUBLE颜色模式:GLUT_RGB(defualt),GLUT_RGBA,GLUT_INDEX指定当前颜色分量glColor*(colorcomponents);glColor3f(0.0,1.0,0.0);glColor3fv(colorArray);glColor3i(0,255,255);glIndex(colorIndex);Set_c
3、urrent_color(red);Draw_object(A);Draw_object(B);Set_current_color(blue);Set_current_color(green);Draw_object(c)显示窗口RGB颜色分量的设置glClearColor(red,green,blue,alpha);显示场景的当前刷新缓存的设置glClear(buffer-name);GL_COLOR_BUFFER_BIT;GL_DPTH_BUFFER_BIT;GL_ACCUM_BUFFER_BIT;GL
4、_STENCIL_BUFFER_BIT在函数glBegin()和glEnd()之间是顶点函数的集合.glBegin()的参数决定了顶点构造的图元的种类.图元的绘制顶点glVertex{234}{sifd}[v](DataTypecoords);点glBegin(GL_POINTS);glVertex*(point-coordinate);….glEnd();属性:ColorSizeglPointSize(GLfloatsize-float);线GL_LINESGL_LINE_STRIPGL_LINE_LOO
5、P线glBegin(GL_LINES);glVertex*(point1-coordinate);glVertex*(point2-coordinate);glVertex*(point3-coordinate);glVertex*(point4-coordinate);glVertex*(point5-coordinate);glEnd();p1p3p2p4glBegin(GL_LINE_STRIP);glVertex*(point1-coordinate);glVertex*(point2-coordi
6、nate);glVertex*(point3-coordinate);glVertex*(point4-coordinate);glVertex*(point5-coordinate);glEnd();p1p3p2p4p5glBegin(GL_LINE_LOOP);glVertex*(point1-coordinate);glVertex*(point2-coordinate);glVertex*(point3-coordinate);glVertex*(point4-coordinate);glVerte
7、x*(point5-coordinate);glEnd();p1p3p2p4p5属性ColorWidthstyleWidthglLineWidth(GLfloatwidth);styleglLineStripple(GlintrepeatFactor,GLushortpattern);参数pattern是一个描述如何显示线段的一个16位整数,值为1的位对应一个“开”象素,值为0的位对应一个“关”象素.改模式从低位开始应用于线路径,默认模式为0xFFFF(每一位的值为1),它生成实线.整数参数repeatFa
8、ctor说明模式中每一位重复应用多少次才轮到下一位.默认的重复值是1.glEnable(GL_LINE_STIPPLE);glDisable(GL_LINE_STIPPLE);Dotted:0x01011Dashed:0x00FF1Dash/dot/dash:0x1C471多边形多边形的限制多边形的边不能相交.OpenGL多边形必须是凸多边形.glBegin(GL_POLYGON);glVertex2i(180,