02基于VC++的OpenGL编程讲座之基本图元

02基于VC++的OpenGL编程讲座之基本图元

ID:41037038

大小:72.50 KB

页数:5页

时间:2019-08-14

02基于VC++的OpenGL编程讲座之基本图元_第1页
02基于VC++的OpenGL编程讲座之基本图元_第2页
02基于VC++的OpenGL编程讲座之基本图元_第3页
02基于VC++的OpenGL编程讲座之基本图元_第4页
02基于VC++的OpenGL编程讲座之基本图元_第5页
资源描述:

《02基于VC++的OpenGL编程讲座之基本图元》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、任何复杂的三维模型都是由基本的几何图元:点、线段和多边形组成的,有了这些图元,就可以建立比较复杂的模型。因此这部分内容是学习OpenGL编程的基础。  一、基本图元的描述及定义  OpenGL图元是抽象的几何概念,不是真实世界中的物体,因此须用相关的数学模型来描述。所有的图元都是由一系列有顺序的顶点集合来描述的。OpenGL中绘制几何图元,必须使用glBegain()和glEnd()这一对函数,传递给glBegain()函数的参数唯一确定了要绘制何种几何图元,同时,在该函数对中给出了几何图元的定义,函数glEnd()标志顶点列表的结束

2、。例如,下面的代码绘制了一个多边形:glBegin(GL_POLYGON);glVertex2f(0.0,0.0);glVertex2f(0.0,3.0);glVertex2f(3.0,3.0);glVertex2f(4.0,1.5);glVertex2f(3.0,0.0);glEnd();  函数glBegin(GLenummode)标志描述一个几何图元的顶点列表的开始,其参数mode表示几何图元的描述类型,具体类型见表一:类型说明GL_POINTS单个顶点集GL_LINES多组双顶点线段GL_POLYGON单个简单填充凸多边形GL

3、_TRAINGLES多组独立填充三角形GL_QUADS多组独立填充四边形GL_LINE_STRIP不闭合折线GL_LINE_LOOP闭合折线GL_TRAINGLE_STRIP线型连续填充三角形串GL_TRAINGLE_FAN扇形连续填充三角形串GL_QUAD_STRIP连续填充四边形串                  表一、几何图元类型说明  部分几何图元的示意图:图一、部分几何图元示意图  在glBegin()和glEnd()之间最重要的信息就是由函数glVertex*()定义的顶点,必要时也可为每个顶点指定颜色(只对当前点或后续

4、点有效)、法向、纹理坐标或其他,即调用相关的函数:函数函数意义glColor*()设置当前颜色glIndex*()设置当前颜色表glNormal*()设置法向坐标glEvalCoord*()产生坐标glCallList(),glCallLists()显示列表glTexCoord*()设置纹理坐标glEdgeFlag*()控制边界绘制glMaterial*()设置材质              表二、在glBegin()和glEnd()之间可调用的函数  需要指出的是:OpenGL所定义的点、线、多边形等图元与一般数学定义不太一样,存在

5、一定的差别。一种差别源于基于计算机计算的限制。OpenGL中所有浮点计算精度有限,故点、线、多边形的坐标值存在一定的误差。另一种差别源于位图显示的限制。以这种方式显示图形,最小的显示图元是一个象素,尽管每个象素宽度很小,但它们仍然比数学上所定义的点或线宽要大得多。当用OpenGL进行计算时,虽然是用一系列浮点值定义点串,但每个点仍然是用单个象素显示,只是近似拟合。  二、点(Point)  用浮点值表示的点称为顶点(Vertex)。所有顶点在OpenGL内部计算时都使用三维坐标(x,y,z)来处理,用二维坐标(x,y)定义的点在Ope

6、nGL中默认z值为0。顶点坐标也可以用齐次坐标(x,y,z,w)来表示,如果w不为0.0,这些齐次坐标表示的顶点即为三维空间点(x/w,y/w,z/w),一般来说,w缺省为1.0。  可以用glVertex{234}{sifd}[V](TYPEcords)函数来定义一个顶点。例如:glVertex2f(2.0f,3.0f);//二维坐标定义顶点;  OpenGL中定义的点可以有不同的尺寸,其函数形式为:voidglPointSize(GLfloatsize);  参数size设置点的宽度(以象素为单位),必须大于0.0,缺省时为1.0

7、。  三、线(Line)  在OpenGL中,线代表线段(LineSegment),它由一系列顶点顺次连结而成。具体的讲,线有独立线段、条带、封闭条带三种,如图二所示:图二、线段的三种连结方式  OpenGL能指定线的宽度并绘制不同的虚点线,如点线、虚线等。相应的函数形式如下:  1、voidglLineWidth(GLfloatwidth);  设置线宽(以象素为单位)。参数width必须大于0.0,缺省时为1.0。  2、voidglLineStipple(GLintfactor,GLushortpattern);  设置当前线为

8、虚点模式。参数pattern是一系列的16位二进制数(0或1),它重复地赋给所指定的线,从低位开始,每一个二进制位代表一个象素,1表示用当前颜色绘制一个象素(或比例因子指定的个数),0表示当前不绘制,只移动一个象素位(或

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。