- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
opengl的基本几何元素有点线多边形-read
3.4 OpenGL中基本几何图形的绘制 3.4.1 点的绘制 3.4.3 多边形的绘制 * * 3.4.1 点的绘制 3.4.2 线的限制 3.4.3 多边形的绘制 OpenGL的基本几何元素有点、线、多边形。从根本上看,OpenGL绘制的所有复杂三维物体都是由一定数量的基本图形元素构成的,曲线、曲面分别是由一系列直线段,多边形近似得到的。 OpenGL的点用一组称为顶点的浮点数定义。所有的内部运算都是按顶点是三维点进行的。即使用户设定的是二维的顶点, OpenGL也会通过自动增加一个值为0的z坐标。 在OpenGL中,顶点的设置命令为: 比如:void glVertex3f(…) void glVertex{234}{sifd}{v}(TYPE cords) 参数{234}:为输入的坐标值个数; 参数{sifd}:为输入坐标的数据类型; 参数(cords)是四维坐标(x,y,z,w)的缩写,最少必须用二维坐标(x,y)。默认值z为0.0,w为1.0。 顶点的设置命令: 所有的几何图最终都是通过一组有序顶点来描述的。OpenGL中有十种基本图元,从空间中绘制的简单的点到任意边数的封闭多边形。用glBegin命令可告诉OpenGL开始把一组顶点解释为特定图元。然后用glEnd命令结束该图元的顶点列表。 3.4.1 点的绘制(续) void glBegin(Glenum mode); 此函数标志描述一个几何图元的顶点列表的开始。图元的类型由mode来决定。共有GL_POINTS,GL_LINES,GL_LINE_STRIP等十种图元 void glEnd(void); 此函数标志着顶点列表的结束。 3.4.1 点的绘制(续) 点的绘制: glBegin(GL_POINTS); glVertex3f(0.0,0.0,0.0); glVertex3f(5.0,5.0,5.0); glEnd(); 在绘制一个点时,点的大小的默认值是一个像素。可以用函数glPointSize()来对点的大小进行修改。函数如下: void glPointSize(GLfloat size); 该命令以像素为单位设置绘制点的大小。 void glLineWidth(GLfloat width); ??? 以象素为单位设置线绘制的宽度。 ??void glLineStipple(GLint factor,GLushort pattern); ??? 指定点画模式(线型)。 ?factor 指定线型模式中每位的乘数。factor的值在[1,255]之间,缺省值为1。 ?pattern 用16位整数指定位模式。位为1时,指定要绘;位为0时,指定不绘。缺省时,全部为1。位模式从低位开始。 线属性 3.4.2 线的绘制 例如:模式0x3f07,二进制表示为:0011 1111 0000 0111,即是从低位起绘3个象素,不绘5个象素,绘6个象素和不绘2个象素来连成一条线。设factor为2,则绘或不绘的象素相应都乘上2。 ??? 利用如下命令定义上述线型: ??? glLineStipple(2,0x3f07); ??? glEnable(GL_LINE_STIPPLE); 在定义线型后,必须用glEnable()命令激活线型。下图表示用不同的模式和重复因子绘线。 当不激活线型时: pattern???? factor ???????????????? ?0xffff??????? 1 去活线型时调用glDisable(GL_LINE_STIPPLE)。 glColor3f(1.0,0.0,0.0); glLineWidth(5.0); glBegin(GL_LINES); glVertex3f(0.0,0.0,0.0); glVertex3f(50.0,50.0,0.0); glVertex3f(50.0,100.0,0.0); glVertex3f(100.0,150.0,0.0); glEnd(); 独立线段的绘制: glColor3f(1.0,0.0,0.0); glLineWidth(5.0); glBegin(GL_LINE_STRIP); glVertex3f(0.0,0.0,0.0); glVertex3f(50.0,50.0,0.0); glVertex3f(50.0,100.0,0.0); glVertex3f(100.0,150.0,0.0); glEnd(); 连接线段的绘制: 3.4.2 线的绘制(续) glColor3f(1.0,0.0,0.0); glLine
文档评论(0)