GLUT 按键处理

GLUT 按键处理

ID:40747437

大小:31.00 KB

页数:5页

时间:2019-08-07

GLUT 按键处理_第1页
GLUT 按键处理_第2页
GLUT 按键处理_第3页
GLUT 按键处理_第4页
GLUT 按键处理_第5页
资源描述:

《GLUT 按键处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、【转】【OpenGL】GLUT按键处理2010-07-1615:19转载自hh20040410最终编辑hh20040410GLUT教程            键盘输入           GLUT允许我们编写程序,在里面加入键盘输入控制,包括了普通键,和其他特殊键(如F1,UP)。在这一章里我们将学习如何去检测哪个键被按下,可以从GLUT里得到些什么信息,和如何处理键盘输入。           到现在,你应该注意到了,只要你想控制一个事件的处理,你就必须提前告诉GLUT,哪个函数将完成这个任务。到现在为止,

2、我们已经使用GLUT告诉窗口系统,当窗口重绘时我们想调用哪个渲染函数,当系统空闲时,哪个函数被调用。当窗口大小改变时,哪个函数又将被调用。相似的,我们必须做同样的事来处理按键消息。我们必须使用GLUT通知窗口系统,当某个键被按下时,哪个函数将完成所要求的操作。我们同样是调用一个函数注册相关的回调函数。一函数介绍:当你按下一个键后,GLUT提供了两个函数为这个键盘消息注册回调。①glutKeyboardFunc普通按键的按键消息。   这个函数是告诉窗口系统,哪一个函数将会被调用来处理普通按键消息。   普通键

3、是指字母,数字,和其他可以用ASCII代码表示的键。函数原型如下:   voidglutKeyboardFunc(void(*func)(unsignedcharkey,intx,inty));   参数:   func:处理普通按键消息的函数的名称。如果传递NULL,则表示GLUT忽略普通按键消息。   这个作为glutKeyboardFunc函数参数的函数需要有三个形参。第一个表示按下的键的ASCII码,   其余两个提供了,当键按下时当前的鼠标位置。鼠标位置是相对于当前客户窗口的左上角而言的。   一个

4、经常的用法是当按下ESCAPE键时退出应用程序。注意,我们提到过,glutMainLoop函数产生的   是一个永无止境的循环。唯一的跳出循环的方法就是调用系统exit函数。这就是我们函数要做的,当   按下ESCAPE键调用exit函数终止应用程序(同时要记住在源代码包含头文件stdlib.h)。   下面就是这个函数的代码:   voidprocessNormalKeys(unsignedcharkey,intx,inty)   {        if(key==27)              Exit

5、(0);   }②glutSpecialFunc特殊按键的按键消息。   GLUT提供函数glutSpecialFunc以便当有特殊键按下的消息时,你能注册你的函数。   函数原型如下:   voidglutSpecialFunc(void(*func)(intkey,intx,inty));   参数:   func:处理特殊键按下消息的函数的名称。传递NULL则表示GLUT忽略特殊键消息。   下面我们写一个函数,当一些特殊键按下的时候,改变我们的三角形的颜色。   这个函数使在按下F1键时三角形为红色,

6、按下F2键时为绿色,按下F3键时为蓝色。   voidprocessSpecialKeys(intkey,intx,inty){           switch(key){                   caseGLUT_KEY_F1:                       red=1.0;                            green=0.0;                                      blue=0.0;break;         case

7、GLUT_KEY_F2:                                      red=0.0;                                      green=1.0;                                     blue=0.0;break;                    caseGLUT_KEY_F3:                                      red=0.0;                 

8、                     green=0.0;                                     blue=1.0;break;           }   }  上面的GLUT_KEY_*在glut.h里已经被预定义为常量。这组常量如下:二组合键的处理:   CTRL,ALT和SHIFT  一些时候我们想知道要是一个组合键(modifierkey)也就是CTR

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

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

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