ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:271KB ,
资源ID:7475164      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7475164.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(OpenGL试题库.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

OpenGL试题库.doc

1、一、 选择题(每题1分,共10分) 1、通过( A )技术,我们可以将2D图像数据映射到3D图元上,以增强场景的真实感。 A. 纹理映射 B.模板 C. 光照 D. 混合 2、要得到如右图示的效果,glBegin() 函数的类型参数可取为( C )。 A. GL_POLYGON B. GL_LINES C. GL_LINE_STRIP D. GL_LINE_LOOP 3、要实现屏幕区域的多视口显示,应采用( C )函数。 A. glOrtho() B. gluPerspective() C.

2、 glViewport() D. gluLookAt() 4、从下面四个侯选项中选择两个OpenGL语句,可以使摄像机从源位置变换到目标位置。 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); _______B_________; _______D_________; A. glTranslatef(0.0,0.0,-d) B. glTranslatef(0.0,0.0,d) C. glRotatef(-90.0,0.0,1.0,0.0) D. glRotatef

3、90.0,0.0,1.0,0.0) 5、由 K 个控制顶点 Pi(i=1,… k) 所决定的 n 次 B 样条曲线,由 ( C ) 段n次B样条曲线段光滑连接而成。 1 -1 0 0 1 0 0 0 1 A. k-n-2 B. k-n-1 C. k-n D. k-n+1 6、使用二维图形变换矩阵: T= 如果图形的一个顶点坐标为A(6,8),则 变换后A’的坐标为( C )。 A.(2,-8) B. (-2,-8)

4、 C. (2,8) D. (-2,8) 7、点P的坐标为(8,6,4,2),对应的空间齐次坐标为 ( D )。 A. (8,6,4,2) B. (8,6,4) C. (4,3,2) D. (4,3,2,1) 8、当观察光照下的光滑物体表面时,在某个方向上看到高光或强光,这个现象为 ( B ) A. 漫反射 B.镜面反射 C. 环境光 D. 折射 9、双三次Bezier 曲面的4条边界都是三次Bezier 曲线, 其特征网络

5、有 ( C ) 个顶点。 A. 9 B. 12 C. 16 D. 20 10、三维空间中的几何图元上有一点P(1,2,3), 参考海平面方程为y+1=0,等高面方程为x+1=0,则P点的纹理坐标P’(s,t)为 ( A )。 A. P’(2,3)      B. P’(3,2) C. P’(-1,-1)    D. P’(1,1) 11、OpenGL默认情况下显示模式为( A )。 A. 单缓存模式 B. 双缓存模式

6、 C. RGB颜色模式 D. 深度测试模式 12、OpenGL包含200多个函数,其中gluLookAt()属于( C )种函数。 A. 图元函数 B. 属性函数 C. 观察函数 D. 控制函数 13、位图位置由光栅位置决定,指定光栅位置的函数是( B )。 A. glTranslatef() B. glRasterPos() C. glRotatef() D. glRasterPosition() 14、由 K 个控制顶点 Pi(i=1,… k) 所决定的 n 次 B 样条曲线,由 ( C

7、 ) 段n次B样条曲线段光滑连接而成。 0 -1 0 1 0 0 1 A. k-n-2 B. k-n-1 C. k-n D. k-n+1 15、使用二维图形变换矩阵: T= 如果图形的一个顶点坐标为A(6,8),则 变换后A’的坐标为( C )。 A.(8,-6) B. (-6,8) C. (-8,6) D. (6,-8) 16、点P的坐标为(8,6,2),对应的空间齐次坐标为 ( A

8、 )。 A. (8,6,2,1) B. (8,6,2,0) C. (4,3,1,1) D. (4,3,1,0) 17、材质属性应与光照属性相匹配,如果需要指定一个面片在红光源照射下呈现黄色,应将面片材质的漫反射和环境反射属性指定为 ( B ) A. 红色 B. 绿色 C. 兰色 D. 白色 18、三次Bezier 曲线由 ( D ) 个控制点确定。 A. 1 B. 2 C. 3

9、 D. 4 19、下面哪些不是OpenGL标准几何元素的绘制模式?       ( A ) A. GL_FOG(雾化处理,不是绘图模式)    B. GL_LINE_STRIP(不闭合折线) C. GL_POINTS(单个顶点集)             D. GL_TRIANGLE_FAN(扇形连续填充三角形串) 二、 填空题(每空1分,共20分) 1、 OpenGL有两条平行的流水线,一条是______几何流水线_______,另一条是______像素流水线______。 2、 OpenGL函数库主要分为三类:___核心库___

10、工具库___、___辅助库___。 3、 如果有glOrtho(-1.5, 1.5, -1.5, 1.5, -10.0, 10.0),则近栽剪面的左下角坐标为 _(-1.5, -1.5, 10.0)__,右上角坐标为__(1.5,1.5,10.0)__;远裁剪面的左下角的坐标为___(-1.5,-1.5,-10.0)__,右上角的坐标为__(1.5,1.5,-10.0)___。 4、 绘制真实感图形主要进行两种操作:_____设置光源_____和_____设置材质_____。 5、 在OpenGL中,每个光源包括以下属性_____颜色_____、_____位置_____、____

11、方向_____。 6、 OpenGL对光照效果的计算是由四个不同的光照分量叠加而成的,即:_环境光_、_漫反射光_、__镜面反射光__、____发射光____。 7、 在设置了光源属性以后,必须打开光源才能使光源有效,启用光源,即调用函数_______glEnable(GL_GLIGHTING)_______。 8、 写出实现沿x轴正方向平移5个单位的函数语句__glTranslatef(5.0, 0.0, 0.0)__。 9、 OpenGL有两个重要优点。首先,OpenGL非常接近底层__硬件____,使得用OpenGL编写的程序具有较高的运行效率;其次,OpenGL易于___掌

12、握___和___使用___。 10、 出于效率考虑,OpenGL将绘制命令做了缓冲处理。单缓冲可通过调用___glFlush()___函数,双缓冲可通过_____glutSwapBuffer()_____函数,强制绘制器将结果立即输出。 11、 如果有glFrustum(-1.5, 1.5, -1.5, 1.5, -10.0, 10.0),则近栽剪面的左下角坐标为 _(-1.5, -1.5, 10.0)__,右上角坐标为__(1.5,1.5,10.0)__;远裁剪面的左下角的坐标为___(-1.5,-1.5,-10.0)__,右上角的坐标为__(1.5,1.5,-10.0)___。 12

13、 OpenGL中所需的坐标系变换由两个矩阵决定,即__模型视图矩阵__和_ 投映矩阵__。 13、 GLU提供了三种类型的二次曲面,即____球体____、____圆柱体____和____圆盘____。 14、 仿射变换是操纵几何对象,为场景制作动画效果及获取理想视图的关键,主要有__平移__、__旋转__和__缩放__。 15、 OpenGL通过一个综合了__漫反射__、__镜面反射__、__环境光__以及__发射光__等多种因素的光照模型来模拟现实世界中我们所看到的颜色。 16、 绘制曲线时,通过预先设置的四个控制点,可绘制__贝塞尔曲线__或__插值曲线__或_B样条曲线_。

14、 三、 判断题(对的打 √,错的打 ×,每题1分,共10分) 1、 OpenGL只能画二维图形,不能画三维图形。 ( × ) 2、 齐次坐标 (1, 2, 3, 0) 表示三维空间的矢量 (1, 2, 3) ( √ ) 3、 消隐算法中,场景里的多边形在Z-Buffer算法中是要求排序的,而在画家方法中就不用排序了。 ( × ) 4、 所有图形都可以看成是由直线段组成的。 ( × ) 5、 图形变换有两种形式:视景体坐

15、标变换和模型视图变换。 ( √ ) 6、 自由曲线可以用一条标准代数多项式方程来描述。 ( √ ) 7、 B曲线具有对称性质。 ( √ ) 8、 齐次坐标可表示图形中无穷远点。 ( √ ) 9、 组合变换就是由若干个基本的几何变换组合而成。 ( × ) 10、 投影(proj

16、ect)是一种使三维对象映射为二维对象的变换。 ( √ ) 11、 OpenGL中点和直线的大小和宽度都是1个像素。 ( × ) 12、 启用光照后,glColor3f()函数将全部失效,面片颜色应由材质函数来完成。 ( √ ) 13、 几何图元纹理映射时不会发生绮变。 ( × ) 14、 一个复杂的几何图元可以分解成许多简单的图元并保存在显示列表中。 ( √ ) 15、 几何图元除仿射变换外,就没

17、有其他变换了。 ( × ) 16、 离散图元的光栅化位置不受模型视图矩阵和投影矩阵的影响。 ( × ) 17、 通过修改glLookAt()函数参数,可以改变虚拟摄像机的位置和朝向。 ( √ ) 18、 光照和材质不是OpenGL状态的一部分,法向量更不是。 ( × ) 19、 OpenGL只能绘制曲线不能绘制曲面。 ( × ) 20、 绘制曲线时,插值曲线

18、不保证连续,贝塞尔曲线不保证光滑,B样条曲线可保证连续且光滑。 ( √ ) 四、 程序设计题(共60分) 1、 右图示的某程序菜单用鼠标右键控制。要求编写用glut库函数实现该菜单功能的OpenGL程序。 #include #include GLint MainMenu,SubMenu1,SubMenu2; void SubMenu1_Fun(GLint val){ switch(val){ case 1: printf("这是子菜单Spot的Expoi

19、nt+项!\n\r"); break; case 2: printf("这是子菜单Spot的EXPOINT-\n\r"); break; case 3: printf("这是子菜单Spot的CUTOFF+!\n\r"); break; case 4: printf("这是子菜单Spot的CUTOFF-!\n\r"); break; default: printf("这是子菜单Spot的其他项!\n\r"); } } void SubMenu2_Fun(GLint val){ switch(val){ case

20、1: printf("这是子菜单Colors的Red!\n\r"); break; case 2: printf("这是子菜单Colors的Green!\n\r"); break; case 3: printf("这是子菜单Colors的Blue!\n\r"); break; default: printf("这是子菜单Colors的其他项!\n\r"); } } void Menu_Func(GLint val){ switch(val){ case 1: printf("这是主菜单的Spot\n\r");

21、 break; case 2: printf("这是主菜单的Colors\n\r"); break; default: printf("这是主菜单其他项\n\r"); } } void myDisp(void){ glClear(GL_COLOR_BUFFER_BIT); glFlush(); } int main(int argc,char ** argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE); glutInitWindowPositi

22、on(200,100); glutInitWindowSize(400,300); glutCreateWindow("多级菜单示例!"); SubMenu1=glutCreateMenu(SubMenu1_Fun); glutAddMenuEntry("Expoint+",1); glutAddMenuEntry("Expoint-",2); glutAddMenuEntry("Cutoff+",3); glutAddMenuEntry(“Cutoff-“,4); SubMenu2=glutCreateMenu(SubMenu2_Fun);

23、 glutAddMenuEntry("Red",1); glutAddMenuEntry("Green",2); glutAddMenuEntry("Blue",3); MainMenu=glutCreateMenu(Menu_Func); glutAddSubMenu("Spot",SubMenu1); glutAddSubMenu("Colors",SubMenu2); glutAttachMenu(GLUT_RIGHT_BUTTON); glutDisplayFunc(myDisp); glutMainLoop(); } 2、 读下

24、面程序,在右边空白处用文字和图示将程序函数模块主要功能及运行结果描述出来。 #include GLfloat planes[]={-1.0,0.0,1.0,0.0}; GLfloat planet[]={0.0,-1.0,0.0,1.0}; static GLfloat theata[]={0.0,0.0,0.0}; static GLint axis=2; GLubyte image[64][64][3]; Init函数主要功能有: 1、 初始化图片位图 2、 启用深度测试和融合 3、 设置解压缩像素贮存格式 4、 启用纹理,设置相关

25、参数 void init(void){ GLint i,j,c; for(i=0;i<64;i++){ for(j=0;j<64;j++){ c=(((i&0x8)==0)^((j&0x8)==0))*255; image[i][j][0]=(GLubyte)c; image[i][j][1]=(GLubyte)c; image[i][j][2]=(GLubyte)c; } } glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glEnable(GL_BLEND); glBl

26、endFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glPixelStorei(GL_UNPACK_ALIGNMENT,1); glEnable(GL_TEXTURE_2D); glTexImage2D(GL_TEXTURE_2D,0,3,64,64,0,GL_RGB,GL_UNSIGNED_BYTE,image); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT); glTexParameterf(GL_TEXTURE_2D,GL_TEX

27、TURE_WRAP_T,GL_REPEAT); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); } Key函数主要功能有: 1、 响应键盘事件,按键‘1’,开始旋转图形 2、 按键‘2’,停止旋转图形 void key(unsigned char k,int x,int y){ if(k=='1') glutIdleFunc(spinCube);

28、 if(k=='2') glutIdleFunc(NULL); } spinCube函数主要功能有: 1、 改变当前旋转轴旋转角,限制旋转角在0~360度范围内 2、 重新刷新当前窗口 void spinCube(void){ theata[axis]+=2.0; if(theata[axis]>360.0)theata[axis]-=360.0; glutPostRedisplay(); } Mouse函数主要功能有: 1、 响就鼠标事件 2、 通过左中右键改变旋转轴 void mouse(int btn,int state,int x,int y)

29、{ if(btn==GLUT_LEFT_BUTTON&&state==GLUT_DOWN) axis=0; if(btn==GLUT_MIDDLE_BUTTON&&state==GLUT_DOWN) axis=1; if(btn==GLUT_RIGHT_BUTTON&&state==GLUT_DOWN) axis=2; } MyReshape函数主要功能有: 1、 响应窗口变化事件 2、 设置视口位置和大小 3、 设置正交视景体,确保绘制图形保持刚性变换 4、 设置模型视图矩阵 5、 自动调用display函数 void myReshape(int

30、w,int h){ glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if(w<=h) glOrtho( -2.0, 2.0, -2.0*(GLfloat)h/(GLfloat)w,2.0*(GLfloat)h/(GLfloat)w,-10.0, 10.0); else glOrtho(-2.0*(GLfloat)w/(GLfloat)h,2.0*(GLfloat)w/(GLfloat)h,-2.0,2.0,-10.0,

31、10.0); glMatrixMode(GL_MODELVIEW); } void display(void){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); Display函数主要功能有: 1、 清除颜色缓冲区和深度缓冲区内容 2、 初始化当前矩阵变换 3、 设置X、Y、Z轴旋转变换矩阵 4、 绘制茶壶 5、 交换前后台缓存内容,执行所有OpenGL命令,并将最后结果在当前窗口中显示出来 glLoadIdentity(); glRotatef(theata[0],1.0,0.0,0.0);

32、 glRotatef(theata[1],0.0,1.0,0.0); glRotatef(theata[2],0.0,0.0,1.0); glutSolidTeapot(1.0); glutSwapBuffers(); } void main(int argc,char **argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH); glutInitWindowSize(500,500); glutCreateWindow(

33、"旋转的纹理茶壶..."); Main函数主要功能有: 1、 初始化OpenGL环境 2、 初始化显示模式为双缓存、RGBA颜色和深度测试 3、 初始化创建窗口 4、 注册窗口回调函数、显示回调函数、系统空闲回调函数、鼠标回调函数和键盘回调函数 5、 调用初始化函数init 6、 调用窗口消息循环函数,监控窗口事件 glutReshapeFunc(myReshape); glutDisplayFunc(display); glutIdleFunc(spinCube); glutMouseFunc(mouse); glutKey

34、boardFunc(key); glClearColor(1.0,1.0,1.0,1.0); init(); glutMainLoop(); } 3、 如右图所示,假定将正方形的4个顶点定义为一个单位圆周上的4个等间隔点,试编写OpenGL程序,使得正文形能按θ角旋转(注意旋转角θ可自定义大小)。 #include #include #define RAD 0.017453 GLfloat theata=0.0; Void myDisp(void){ glClear(GL_COLOR_BUFFER

35、BIT); glBegin(GL_POLYGON); glVertex2f(cos(RAD*theata,sin(RAD*theata)); glVertex2f(-sin(RAD*theata),cos(RAD*theata)); glVertex2f(-cos(RAD*theata),-sin(RAD*theata)); glVertex2f(sin(RAD*theata),-cos(RAD*theata)); glEnd(); glFlush(); } Void myIdle(void){ Theata+=2.0; If(theata

36、>360) theata-=360; glPostRedisplay(); } Int main(int argc,char ** argv){ glutInit(&argc,argv); glutInitDisplayModel(GLUT_SINGLE|GLUT_RGB); glutInitWindowPosition(0.0); glutInitWindowSize(400,300); glutCreateWindow(“这是一个旋转的矩形!”); glutDisplayFunc(myDisp); glutIdleFunc(myIdle);

37、 glutMainLoop(); } 4、 读下面程序,在右边方框处用文字将程序函数模块主要功能描述出来。(40分) #include #include #include #include GLint PWidth,PHeight,MaxVal,PSize; GLfloat scale; GLuint * image; getPic() 函数主要功能: 1、 从PPM文件中获取图片数据,并保存在数组image中; 2、 指定纹理缩放因子scale的

38、大小。 void getPic(void){ GLuint err; FILE * fd; GLint i; char c; char b[100]; wchar_t d[100]; GLint red,green,blue; printf("请输入PPM文件名:\n"); scanf_s("%s",b,sizeof(b)); err=fopen_s(&fd,b,"r"); if(err){ swprintf_s(d,sizeof(d),L"错误代码是:%d",err); MessageBo

39、x(NULL,d,L"提示!",MB_OKCANCEL); exit(0); } fscanf_s(fd,"%[^\n] ",b,sizeof(b)); if(b[0]!='P'||b[1]!='3'){ printf("%s is not a PPM file!\n",b); exit(0); } printf("%s is a PPM file\n",b); fscanf_s(fd,"%c",&c,sizeof(c)); while(c=='#'){ fscanf_s(fd,"%[^\n] ",b,sizeof(b));

40、 printf("%s\n",b); fscanf_s(fd,"%c",&c,sizeof(c)); } ungetc(c,fd); fscanf_s(fd,"%d %d %d",&PWidth,&PHeight,&MaxVal); PSize=PWidth*PHeight; image=(GLuint *)malloc(3*sizeof(GLuint)*PSize); for(i=0;i

41、 image[3*PSize-3*i-2]=green; image[3*PSize-3*i-1]=blue; } scale=255./MaxVal; } init() 函数主要功能: 1、 清除背景颜色为黑色,指定当前绘制颜色为白色; 2、 设置二维纹理映射参数。 void init(void){ glClearColor(0.0,0.0,0.0,1.0); glColor3f(1.0,1.0,1.0); glEnable(GL_TEXTURE_2D); glPixelTransferf(GL_RED_SCALE,scale)

42、 glPixelTransferf(GL_GREEN_SCALE,scale); glPixelTransferf(GL_BLUE_SCALE,scale); glPixelStorei(GL_UNPACK_SWAP_BYTES,GL_TRUE); glPixelStorei(GL_UNPACK_ALIGNMENT,1); glTexImage2D(GL_TEXTURE_2D,0,3,PHeight,PWidth,0,GL_RGB,GL_UNSIGNED_INT,image); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WR

43、AP_S,GL_CLAMP); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); } Quads() 函数主要功能: 1、 绘制四边形 2、 对每个四边形顶点指定一个纹理坐标 void Quads(void){ glBegin(GL_QUAD

44、S); glTexCoord2f(0.0,0.0); glVertex2i(0,0); glTexCoord2f(0.0,1.0); glVertex2i(0,PWidth-1); glTexCoord2f(1.0,1.0); glVertex2i(PHeight-1,PWidth-1); glTexCoord2f(1.0,0.0); glVertex2i(PHeight-1,0); myReshape() 函数主要功能: 1、 响应窗口大小缩放事件 2、 设置窗口中视口的大小和位置 3、 设置正交投影矩阵,投影大小正好是图片

45、的宽度和高度 4、 设置模型视图变换矩阵,并初始化为单位矩阵 glEnd(); } void myreshape(int w,int h){ glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0,(GLfloat)PWidth,0.0,(GLfloat)PHeight); glMatrixMode(GL_MODELVIEW); display() 函数主要功能: 1、 响应窗口显示事件 2、 清除颜色缓冲区内容 3、 绘制带纹理的四边

46、形 4、 立即执行所有OpenGL命令,将图元显示在当前窗口的当前视口中 glLoadIdentity(); } void display(void){ glClear(GL_COLOR_BUFFER_BIT); Quads(); glFlush(); } int main(int argc,char **argv){ getPic(); glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(PWidt

47、h,PHeight); main() 函数主要功能: 1、 为执行文件调用主函数提供唯一入口 2、 调用getPic()函数,设置image纹理数据 3、 初始化OpenGL环境 4、 创建应用程序窗口 5、 注册窗口大小缩放回调函数和显示回调函数 6、 调用init()初始化函数 7、 系统进入窗口事件循环监听状态 glutInitWindowPosition(0,0); glutCreateWindow("背景图片示例..."); glutReshapeFunc(myreshape); glutDisplayFunc(display); init(); glutMainLoop(); }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服