- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二维图形画法 主要内容: 一、画点 二、画线段 三、坐标变换 四、改变背景颜色 一、画点 1.在OpenGL中指定顶点 点”是一切的基础, OpenGL提供了一系列函数。它们都以glVertex开头,后面跟一个数字和1~2 个字母。例如: glVertex2d glVertex2f glVertex3f glVertex3fv 数字表示参数的个数,2表示有两个参数,3表示三个,4表示四个 字母表示参数的类型,s表示16位整数(OpenGL中将这个类型定义为Lshort), i表示32位整数(OpenGL中将这个类型定义为GLint 和GLsizei), f表示32位浮点数(OpenGL中将这个类型定义为GLfloat和GLclampf), d表示 64位浮点数(OpenGL中将这个类型定义为GLdouble和GLclampd)。 v表示传递的几个参数将使用指针的方式. 例子: 这些函数除了参数的类型和个数不同以外,功能是相同的。例如,以下五个代码段的功能是等效的: (一)glVertex2i(1, 3); (二)glVertex2f(1.0f, 3.0f); (三)glVertex3f(1.0f, 3.0f, 0.0f); (四)glVertex4f(1.0f, 3.0f, 0.0f, 1.0f); (五)GLfloat VertexArr3[] = {1.0f, 3.0f, 0.0f}; glVertex3fv(VertexArr3); 表示参数是个数组 以后我们将用glVertex*来表示这一系列函数。 1.实例:画点 2.点的大小 点的大小默认为1个像素,但也可以改变之。改变的命令为glPointSize,其函数原型如下: void glPointSize(GLfloat size); size必须大于0.0f,默认值为1.0f,单位为“像素”。 注意:对于具体的OpenGL实现,点的大小都有个限度的,如果设置的size超过最大值,则设置可能会有问题。 实例:点大小 实例:点颜色 练习:点大小与颜色 二、1、画线段 2、线段粗细、颜色 glColor*系列函数可以用于设置颜色,其中三个参数的版本可以指定R、G、B的值,而A值采用默认;四个参数的版本可以分别指定R、G、B、A的值。 void glColor3f(GLfloat red, GLfloat green, GLfloat blue); void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); 将浮点数作为参数,其中0.0表示不使用该种颜色,而1.0表示将该种颜色用到最多。例如: glColor3f(1.0f, 0.0f, 0.0f); 表示不使用绿、蓝色,而将红色使用最多,于是得到最纯净的红色。 glColor3f(0.0f, 1.0f, 1.0f); 表示使用绿、蓝色到最多,而不使用红色。混合的效果就是浅蓝色。 glColor3f(0.5f, 0.5f, 0.5f); 表示各种颜色使用一半,效果为灰色。 注意:浮点数可以精确到小数点后若干位,这并不表示计算机就可以显示如此多种颜色。实际上,计算机可以显示的颜色种数将由硬件决定。如果OpenGL找不到精确的颜色,会进行类似“四舍五入”的处理 3、画虚线 解释: glEnable(GL_LINE_STIPPLE):表示启动虚线模式 glDisable(GL_LINE_STIPPLE):表示关闭虚线模式 glLineStipple:来设置虚线的样式 void?glLineStipple(GLint?factor,?GLushort?pattern);该函数设置当前点的划线方式。factor表示连续画线的次数,范围为1~255,pattern是由0和1组成的16进制数,当位值为1时绘制直线,为0时不绘制直线,例如:0000111100001111的16进制为0x0F0F,表示绘制的是一条短线段,即我们说的破折线。? 下图是pattern取不同的值,虚线的样式不同。 练习1: 练习2: 说明: 用到了9个点,一共画出了4条线,画线的操作是这样执行的:按照在glBegin(GL_LINES)与glEnd()语句之间列出的点的顺序,每相邻的两个点画一条线,如果是奇数个点,那么最后一个点就不可能有另一个端点而画出线条,同时,这个点也不会在屏幕中单独显示出一个点的。 三、坐标变换(1)
原创力文档


文档评论(0)