- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章光栅图形学
3.6 用OpenGL生成基本图形 3.6.1 用OpenGL生成点 glBegin(GL_POINTS) glVertex2f(0.0,0.0) glEnd() glVertex2f()函数用来定义二维点,其后的点是坐标。 glVertex3f()可以用来定义三维点 glPointSize()可以用来定义点在屏幕上显示的大小。 glVertex2d;glVertex2f;glVertex3f;glVertex3fv等等。 数字表示参数的个数:2表示有两个参数,3表示三个,4表示四个 字母表示参数的类型,s表示16位整数;?i表示32位整数;f表示32位浮点数;d表示64位浮点数;v表示传递的几个参数将使用指针的方式 这些函数除了参数的类型和个数不同以外,功能是相同的 3.6 用OpenGL生成基本图形 3.6.2 用OpenGL生成直线 1.绘制直线 glBegin(GL_LINES) glVertex2f(0.5f,0.0f) glVertex2f(-0.5f,0.0f) glVertex2f(-0.5f,0.5f) glVertex2f(0.0f,-0.5f) glEnd() 设置直线宽度的函数glLineWidth() glLineStipple()函数定义线型,m glEnable函数启动线型: glEnable(GL_LINESTIPPLE) ????glEnable(GL_LINE_STIPPLE);????glLineStipple(2,?0x00FF);????glLineWidth(10.0f);????glBegin(GL_LINES);????????glVertex2f(0.0f,?0.0f);????????glVertex2f(0.5f,?0.5f);????glEnd(); glBegin(GL_LINES); glVertex2f(-0.8f,0.8f); glVertex2f(0.8f,0.8f); glEnd(); glEnable(GL_LINE_STIPPLE); glLineStipple(1,0x00FF); glBegin(GL_LINES); glVertex2f(-0.8f,0.4f); glVertex2f(0.8f,0.4f); glEnd(); glLineStipple(2,0x00FF); glBegin(GL_LINES); glVertex2f(-0.8f,0.0f); glVertex2f(0.8f,0.0f); glEnd(); glDisable(GL_LINE_STIPPLE); 3.6 用OpenGL生成基本图形 2.绘制折线 glBegin的参数设置为GL_LINE_STRIP 3.6 用OpenGL生成基本图形 3.6.3 用OpenGL生成区域图形 1.区域图形绘制 用多个顶点来定义,顶点之间按逆时针顺序连接 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,3.0) glEnd() 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(); 3.6 用OpenGL生成基本图形 2.区域图形的填充 默认使用实模式填充,也可以利用命令glPolygonStiple()指定某舟图案模式来填充 使用glEnable(GL_PLOYGON_STIPPLE) glDisable(GL_PLOYGON_STIPPLE)来激活和去激活 static?GLubyte?Mask[128]?={????0x00,?0x00,?0x00,?0x00,???//??这是最下面的一行????0x00,?0x00,?0x00,?0x00,????0x03,?0x80,?0x01,?0xC0,???????0x06,?0xC0,?0x03,?0x60,??????0x04,?0x60,?0x06,?0x20,???????0x04,?0x30,?0x0C,?0x20,??????0x04,?0x18,?0x18,?0x20,??????0x04,?0x0C,?0x30,?0x20,???????0x04,?0x06,?0x60,?0x20
文档评论(0)