实验五:opengl交互 快捷菜单 学生用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五:使用键盘、菜单的方式完成对三维物体的交互

1.实验目的:

理解掌握一个OpenGL程序的常见交互方法---键盘,快捷菜单。

2.实验内容:

1)利用现成的绘制立体的API,如glutWireSphere绘制球,glutWireCone绘制椎体,glutWireCube 绘制立体,glutWireTorus绘制圆环,glutWireTeapot绘制茶壶,glutWireOctahedron绘制八面体。2)使用键盘、菜单的方式绘制三维物体

3)单击鼠标右键在弹出的菜单里可以选择需要绘制的立体以及是wire还是solid填充的,

4)按键盘的UP、DOWN、LEFT、RIGHT按键可以旋转坐标系。

5)由于Glut提供的多面体API默认半径是1.0f的,使用glScalef对其进行了放大。

显示结果如下:

3.示范代码:

(1)在实验二的基础上添加键盘交互,按W键控制的矩形上移,按S键矩形下移,A键左移,D 键右移。

1、在主函数里创建快捷菜单

添加特殊键回调函数

glutSpecialFunc(specialKey); //设置按键输入处理回调函数

2、增加myMenu菜单回调子函数:

//菜单回调函数

并在程序开头设置相关变量说明:

3、添加键盘特殊键控制子函数

在程序开头定义旋转角度变量,并设置初始值GLfloatxRot=0.0f; //绕x轴旋转角度GLfloatyRot=0.0f; //绕y轴旋转角度

4、修改相关窗口大小改变时的代码

5、在display函数中添加相关代码:

相关文档
最新文档