提供此文章用于实验报告文本,代码随缘参考,书上代码+自己瞎写的,没有仔细研究,思考题大家自己想吧,不保证对就不放了,实验截图没有参考意义也不放了。
实验三 OpenGL的键盘交互绘制
一、实验目的
1.理解OpenGL坐标系的概念,掌握OpenGL裁剪窗口、视区、显示窗口的概念和它们之间的关系,学会计算世界坐标和屏幕坐标。
2.学会OpenGL的简单键盘交互操作。
3.学会OpenGL的简单字符绘制。
4.进一步掌握OpenGL点、直线、多边形的绘制。
二、实验内容
1.调出实验一的源代码运行,调整修改使得显示窗口在屏幕中央保持默认大小(300×300),绘制的矩形在显示窗口中央,如实验图3-1所示。
初始矩形:
提示:
1)添加修改窗口位置的函数glutInitWindowPosition(int x,int y),其中(x,y)为窗口左上角在屏幕上的位置。
2)显示窗口的左下角坐标为(-1,-1),右上角坐标为(1,1)。
2.在实验一的基础上添加键盘交互,按W键绘制的矩形上移,按S键矩形下移,按A键矩形左移,按D键矩形右移,如实验图3-2所示。参考步骤如下:
1)在主函数里添加键盘注册回调函数:
glutKeyboardFunc(mykeyboard);
此函数可放在glutDisplayFunc(display)后面。
2)在display()绘制函数中修改绘制矩形代码,用变量代替数值参数。
例如:
g1Rectf(-0.5,-0.5,0.5,0.5);
改为:
glRectf(xl,yl,x2,y2) ;
程序前面加上变量声明和初始值,如:
float x1=-0.5,y1=-0.5,x2=0.5,y2