实验三 OpenGL的简单交互绘制new

实验三 OpenGL的简单交互绘制new

ID:46813064

大小:483.01 KB

页数:13页

时间:2019-11-28

实验三 OpenGL的简单交互绘制new_第1页
实验三 OpenGL的简单交互绘制new_第2页
实验三 OpenGL的简单交互绘制new_第3页
实验三 OpenGL的简单交互绘制new_第4页
实验三 OpenGL的简单交互绘制new_第5页
资源描述:

《实验三 OpenGL的简单交互绘制new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验三OpenGL的简单交互绘制一、实验目的1、理解OpenGL坐标系的概念,掌握OpengGL裁剪窗口、视区、显示窗口的概念和它们之间的关系,学会计算世界坐标和屏幕坐标。2、学会OpenGL的简单键盘交互操作。3、学会OpenGL的简单字符绘制。3、进一步掌握OpengGL点、直线、多边形的绘制。二、实验环境硬件要求:PC机,主流配置,最好为独立显卡,显存512M以上。软件环境:操作系统:WindowsXP。语言开发工具:MicrosoftVisualstudio2008,VisualC++。程序框架:Win32应用程序三、实验内容与要

2、求3.1键盘交互1、调出实验一的源代码运行,调整修改使得显示窗口在屏幕中央保持缺省大小(300*300),绘制的矩形在显示窗口中央。如图2-1所示。提示:(1)添加修改窗口位置的函数glutInitWindowPosition(intx,inty);其中(x,y)为窗口左上角在屏幕上的位置。(2)显示窗口的左下角坐标为(-1,-1),右上角坐标为(1,1)。图2-1未修改前的win32初始源程序参考如下:/*myfirstprogram.cpp*/#include"stdafx.h"#includevoiddisplay(

3、void);voidmyreshape(GLsizeiw,GLsizeih);intAPIENTRY_tWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow){UNREFERENCED_PARAMETER(hPrevInstance);UNREFERENCED_PARAMETER(lpCmdLine);char*argv[]={"hello",""};intargc=2;//must/shouldmatchthenumberofstrin

4、gsinargvglutInit(&argc,argv);//初始化GLUT库;glutInitDisplayMode(GLUT_SINGLE

5、GLUT_RGB);//设置显示模式;(缓冲,颜色类型)glutInitWindowSize(500,500);glutInitWindowPosition(1024/2-250,768/2-250);glutCreateWindow("Hello");//创建窗口,标题为“hello”;glutDisplayFunc(display);//用于绘制当前窗口;glutMainLoop();//表示

6、开始运行程序,用于程序的结尾;return0;}voiddisplay(void){glClear(GL_COLOR_BUFFER_BIT);//刷新颜色缓冲区glRectf(-0.5,-0.5,0.5,0.5);glFlush();//用于刷新命令队列和缓冲区,使所有尚未被执行的OpenGL命令得到执行}2、在实验一的基础上添加键盘交互,按W键绘制的矩形上移,按S键矩形下移,按A键矩形左移,按D键矩形右移,如图2-2。参考步骤如下:(1)在主函数里添加注册键盘回调函数glutKeyboardFunc(mykeyboard);此函数可放在

7、glutDisplayFunc(display);后面。并在程序头部声明添加键盘回调函数:voidmykeyboard(unsignedcharkey,intx,inty);(2)在display()绘制函数中修改绘制矩形代码,用变量代替数值参数。例如:glRectf(-0.5,-0.5,0.5,0.5)改为glRectf(x1,y1,x2,y2);程序前面加上变量声明和初始值,如:floatx1=-0.5,y1=-0.5,x2=0.5,y2=0.5;注意语句的位置。(3)在程序中增加mykeyboard键盘子函数,可放在display(

8、)函数之后。并在如下代码中进行修改,实现键盘控制矩形移动,运行程序自行测试。voidmykeyboard(unsignedcharkey,intx,inty){switch(key){case'W':case'w'://矩形对角坐标变量修改使得矩形上移y1+=0.1;y2+=0.1;break;case'S':case's'://矩形对角坐标变量修改使得矩形下移y1-=0.1;y2-=0.1;break;case'A':case'a'://矩形对角坐标变量修改使得矩形左移x1-=0.1;x2-=0.1;break;case'D':case

9、'd'://矩形对角坐标变量修改使得矩形右移x1+=0.1;x2+=0.1;break;}//参数修改后调用重画函数,屏幕图形将发生改变glutPostRedisplay();}图2-23、设

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。