- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenGL程序,输出 学号、姓名、照片等信息。直线、线型、字体程序
作业1姓名班级学号日期一:作业目的及要求:采用OpenGL程序,输出学号、姓名、照片等信息。直线、线型、字体程序。二:理论基础:1.使用GLUT进行窗口管理:(1)与大小有关的glutInitWindowSize(800,600); //用来定义显示窗口的初始化宽度和高度的像素数glutInitWindowPosition(200,200); //显示窗口左上角应该在屏幕左边界向右50个像素、屏幕上边界100像素的位置上。gluOrth02D(0.0,200.0,0.0,150.0);//这表示使用正投影将世界坐标系二维矩形区域的内容映射到屏幕上。以上三个概念需要弄清,其中gluOrtho2D是指屏幕区域对应的模型坐标范围,比如横向范围是0到200米,纵向是0到150米,而后面的glutInitWindowSize是指glut的窗口弹出来后相对于你电脑屏幕的位置和大小,单位是像素。(2)窗口颜色设置glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //指出显示窗口使用单个缓存且使用RGB(红绿蓝)颜色模型来设置颜色值glClearColor(1.0,1.0,1.0,0.0) //设置窗口背景颜色为白色,前三个变量为红绿蓝分量,最后一个为调和参数,相当于透明度。glClear(GL_COLOR_BUFFER_BIT); //让赋予窗口的颜色在屏幕上显示。Glcolor3f(1.0,0.0,0.0); //显示场景中各种对象的颜色,左边的简单的设置为红色(3)其他glutInit(argc, argv); //GLUT初始化函数glutCreateWindow(); //显示窗口创建定一个标题glutDisplayFunc(Display); //将创建的图形的定义传递给GLUT函数glutMainLoop();//创建的窗口及其中的图形内容激活2.输出图元(1)OpenGL画点函数OpenGL中定义的点放在函数glBegin()和glEnd()之间,有函数glBegin()的参数指定绘制图元的类型。在OpenGL中绘制一个点时,点大小的默认值是一个像素。可以用函数glPointSize(GLfloat size)修改这个值。这个函数采用一个参数来指定画点时以像素为单位的近似直径。但是不是任意大小点都支持,通常使用下面的代码来获取点大小的范围和他们的之间最小的中间值:GLfloat sizes[2];//保存绘制点的尺寸范围GLfloat step;//保存绘制点尺寸的步长glGetFloatv(GL_POINT_SIZE_RANGE,sizes); glGetFloatv(GL_POINT_SIZE_RANULARITY,step); 在OpenGL程序中,我们常可以利用离散的点来拟合一些常见的曲线,如圆,螺旋线等。(2)OpenGL的画线函数使用模式GL_LINES可以在两点之间画线;有时我们需要在一系列的顶点之间绘制连续直线,此时需要用到GL_LINE_STRIP或GL_LINE_LOOP模式。GL_LINE_STRIP模式可以根据指定的一系列顶点,从一个顶点到另一个顶点用连续的线段画线。特别的,当沿着某条曲线指定一系列靠的很近的点,使用GL_LINE_STRIP模式可以绘制一条曲线。GL_LINE_LOOP模式与GL_LINE_STRIP模式类似,只是会在指定的最后一个顶点与第一个顶点之间画最后一条线。直线的属性包括线宽和线型。在OpenGL中可用 void glLineWidth(GLfloat width)指定线宽。可以用下面的代码来获取线宽范围和他们的之间的最小间隔:GLfloat sizes[2];//保存线宽的尺寸范围GLfloat step;//保存线宽尺寸的最小间隔glGetFloarv(GL_LINE_WIDTH_RANGE,sizes); glGetFloarv(GL_LINE_WIDTH_GRANULARITY,step); 数组sizes中保存了glLineWidth的最小有效值和最大有效值,而变量step将保存线宽之间允许的最小增量。Microsoft的OpenGL实现允许线宽从0.5到10.0,最小增量为0.125. (3)OpenGL的字符生成函数字符指数字、字母、汉字等符号。计算机中字符由一个数字编码唯一标识。“美国信息交换用标准代码集”简称ASCII码。它是用7位二进制数进行编码表示128个字符汉字编码的国家标准字符集。每个符号由一个区码和一个位码(2字节)共同标识。区分ASCII码与汉字编码,采用字节的最高位来标识GlutBitmapCharacter(front,charat
文档评论(0)