GLUT键盘控制(glutKeyboardFunc和glutSpecialFunc)
void processSpecialKeys(int key, int x, int y) {
switch(key) {
case GLUT_KEY_F1 :
red = 1.0;
green = 0.0;
blue = 0.0; break;
case GLUT_KEY_F2 :
red = 0.0;
green = 1.0;
blue = 0.0; break;
case GLUT_KEY_F3 :
red = 0.0;
green = 0.0;
blue = 1.0; break;
}
}
GLUT_KEY_F1 F1 function key
GLUT_KEY_F2 F2 function key
GLUT_KEY_F3 F3 function key
GLUT_KEY_F4 F4 function key
GLUT_KEY_F5 F5 function key
GLUT_KEY_F6 F6 function key
GLUT_KEY_F7 F7 function key
GLUT_KEY_F8 F8 function key
GLUT_KEY_F9 F9 function key
GLUT_KEY_F10 F10 function key
GLUT_KEY_F11 F11 function key
GLUT_KEY_F12 F12 function key
GLUT_KEY_LEFT Left function key
GLUT_KEY_RIGHT Up function key
GLUT_KEY_UP Right function key
GLUT_KEY_DOWN Down function key
GLUT_KEY_PAGE_UP Page Up function key
GLUT_KEY_PAGE_DOWN Page Down function key
GLUT_KEY_HOME Home function key
GLUT_KEY_END End function key
GLUT_KEY_INSERT Insert function key
...
//
所有的变量被初始化为1,表明三角形最开始是白色的。
float red=1.0, blue=1.0, green=1.0;
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0.0,1.0,0.0);
// glColor3f
设置绘制三角形的颜色。
glColor3f(red,green,blue);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);
glEnd();
glPopMatrix();
angle++;
glutSwapBuffers();
}
void processNormalKeys(unsigned char key, int x, int y) {
if (key == 27)
exit(0);
else if (key=='r') {
int mod = glutGetModifiers();
if (mod == GLUT_ACTIVE_ALT)
red = 0.0;
else
red = 1.0;
}
}
void processSpecialKeys(int key, int x, int y) {
int mod;
switch(key) {
case GLUT_KEY_F1 :
mod = glutGetModifiers();
if (mod == (GLUT_ACTIVE_CTRL|GLUT_ACTIVE_ALT)) {
red = 1.0; green = 0.0; blue = 0.0;
}
break;
case GLUT_KEY_F2 :
red = 0.0;
green = 1.0;
blue = 0.0; break;
case GLUT_KEY_F3 :
red = 0.0;
green = 0.0;
blue = 1.0; break;
}
}
GLUT键盘控制(glutKeyboardFunc和glutSpecialFunc)相关推荐
- OpenGL---GLUT教程(五) GLUT键盘控制
GLUT 教程 键盘输入 GLUT允许我们编写程序,在里面加入键盘输入控制,包括了普通键,和其他特殊键(如 F1,UP).在这一章里我们将学习如何去检测哪个键被按下,可以从G ...
- OpenGL之路(八)加入�光照效果和键盘控制
在opengl中加入�光照的效果,可用键盘控制放大缩小 w键放大 s键缩小 d键开关灯 预览效果例如以下: 源代码例如以下: #include <gl/glut.h> #include & ...
- opengl鼠标键盘控制相机漫游
键盘wsad控制相机位移,鼠标左键按下控制相机旋转 效果如下 代码如下 #include <stdio.h> #include <string.h> #include < ...
- html5 javascript 事件练习3键盘控制练习
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- 键盘控制事件应用教程大全
获取键盘控制事件是实现交互性最有力的方法之一. 首先需要了解的是如何初始化该事件,基本语句如下: document.onkeydown = keyDown ...
- ROS探索总结(七)(八)(九)——smartcar源码上传 键盘控制 操作杆控制
ROS探索总结(七)--smartcar源码上传 看到前面写的博客还是帮助了很多ROS的学习者,我感到非常荣幸.其实我也是一名ROS的新手,ROS的相关资料少,上手难度大,我现在也在摸索着学习,还希望 ...
- Mouse Without Borders 一套鼠标键盘控制多台电脑
当我的桌子上除了笔记本之外还多了一个台式机后,两个鼠标,两个键盘就显得十分多余,于是开始探索怎样用一套鼠标键盘控制多台电脑... 首先搜到的是这玩意--KVM切换器 在他49个赞的诱惑下,我还去淘宝搜 ...
- 多车调度问题(大疆Robot Master)——ROS键盘控制失灵,小车无法收敛定位,路径规划出错
问题1 ROS键盘控制小车失灵 具体就是:用键盘左右转小车,速度贼快,而且方向不正确,检查发现是控制模块失灵,有可能是内部测量元件(陀螺仪等)烧了,换了个控制模块解决. 问题2 小车无法收敛定位 具体 ...
- [转]基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动
原文出处: https://blog.csdn.net/Forrest_Z/article/details/55002484 准备工作 1.下载串口通信的ROS包 (1)cd ~/catkin_ws/ ...
最新文章
- CTAS VS create table and then insert
- windows下训练FCN模型所遇到的问题
- SharePoint Server 2007 简单安装指南
- 前端学习(3000):vue+element今日头条管理--封装请求模块
- linux消息框架,远程处理器消息框架 - 基于Linux 简化 AMP 配置使其更方便更动态地分配资源...
- java空白页,[求教]JSP页面显示为空白页,请高手赐教!
- mysql自定义函数to_date_mysql 之 str_to_date ()函数 和date_format()函数
- Linux文件系统(七)---系统调用之open操作(一)
- Scott Mitchell 的ASP.NET 2.0数据教程之十五:在GridView的页脚中显示统计信息
- PHP人民币金额数字转中文大写的函数
- Teechart画图,MFC画图
- Sqlloader导数据进数据库时间过长或卡住原因探讨及解决办法
- ppt加载html5,当PPT遇见H5,这才是真爱!
- 政府行政管理思维与互联网思维
- 使用Moses脚本进行数据预处理
- 记账软件如何查看收入支出
- OpenCV开发笔记(五十八):红胖子8分钟带你深入了解图像的矩(图文并茂+浅显易懂+程序源码)
- 教你阅读 Cpython 的源码(一)
- 联发科MT5597 4K数字电视芯片处理器介绍
- 3.2 CMMI3级——需求开发(Requirements Development)
热门文章
- 在用数据绑定的时候我为什么不能把焦点移出(Tab out)我的控件?(译)
- react-native 集成极光推送jpush-react-native时的小问题
- 摄像头光圈大小对景深的影响
- mybatis plus 日志打印_mybatis升级为mybatis-plus踩到的坑
- redis批量操作及性能分析
- WindowsPE 第五章 导出表编程-1(枚举导出表)
- 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )
- 【Flutter】Animation 动画 ( Flutter 动画类型 | Flutter 动画的核心类 )
- 【计算理论】计算复杂性 ( 3-SAT 是 NP 完全问题 | 团问题是 NP 完全问题 | 团问题是 NP 完全问题证明思路 )
- 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )