实验五:opengl交互 快捷菜单 学生用
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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函数中添加相关代码: