Glut处理鼠标事件和键盘事件
2018-01-28 21:09
330 查看
glut的鼠标回调事件和键盘事件在其他的博客上有很多介绍。
这里做个测试的例子有助理解鼠标事件和键盘事件。
百度云盘:opengl,glut头文件、静态库文件,动态库文件 https://pan.baidu.com/s/1jJsi0Cm 密码imtb
百度云盘:vs2008工程 https://pan.baidu.com/s/1eTFrkOy密码q17h
配置:
运行结果:
(1)按住鼠标左键可以实时显示当前的像面坐标
(2)单击左键图形向上移动
(3)单击右键图形向下移动。
代码:
这里做个测试的例子有助理解鼠标事件和键盘事件。
百度云盘:opengl,glut头文件、静态库文件,动态库文件 https://pan.baidu.com/s/1jJsi0Cm 密码imtb
百度云盘:vs2008工程 https://pan.baidu.com/s/1eTFrkOy密码q17h
配置:
运行结果:
(1)按住鼠标左键可以实时显示当前的像面坐标
(2)单击左键图形向上移动
(3)单击右键图形向下移动。
代码:
#include<stdio.h> #include <stdlib.h> #include <glut.h> GLdouble X = 0.0, Y = 0.0; GLdouble thetaX = 10.0, thetaY = 10.0; void mouseFunc(int button, int state, int x, int y) { if (button== GLUT_LEFT_BUTTON) { X+=0.2; Y+=0.2; printf("Moving up...\n"); } if (button == GLUT_RIGHT_BUTTON) { X-=0.2; Y-=0.2; printf("Moving Down...\n"); } glutPostRedisplay(); } void mouseCoordinate(int x,int y) { printf("mouseing ,x:%d,y%d\n",x,y); } void normalKeys(unsigned char key, int x, int y) { switch (key) { case 'u': X+=0.2; Y+=0.2; printf("Moving Up...\n"); break; case 'd': X-=0.2; Y-=0.2; printf("Moving Down...\n"); break; case 27: printf("Exiting"); exit(1); break; default: printf("Key pressed does not have a meaning...."); break; } glutPostRedisplay(); } void idle() { glutPostRedisplay(); } void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f, 0.5f, 0.5f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(X, Y, 0); glRotatef(thetaX, 1.0f, 0.0f, 0.0f); glRotatef(thetaY, 0.0f, 1.0f, 0.0f); glutSolidSphere(1.0, 20.0, 20.0); glFlush(); } int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100); glutInitWindowSize(320,320); glutCreateWindow(argv[0]); glutDisplayFunc(renderScene); //注意这几个函数的前后顺序 glutIdleFunc(idle); glutMouseFunc(mouseFunc); glutMotionFunc(mouseCoordinate); //按住左键显示当前像素坐标。 glutKeyboardFunc(normalKeys); glutMainLoop(); return 0; }
相关文章推荐
- android开发_MotionEvent与其他事件处理_手势_键盘_鼠标
- c#处理鼠标和键盘事件
- Qt Quick事件处理之鼠标、键盘、定时器
- 【转】Glut处理鼠标事件
- C#中处理鼠标和键盘的事件
- QT基础(二)----鼠标、键盘事件处理机制、信息拦截机制
- 直方图的均衡、直方图的反向投影算法,opencv鼠标和键盘处理事件
- 通过select较高效的捕获和处理鼠标键盘事件
- C#中处理鼠标和键盘的事件
- Qt Quick鼠标事件处理、键盘、计时器
- tkinter 对键盘和鼠标事件的处理
- C#中处理鼠标和键盘的事件
- QT基础(二)----鼠标、键盘事件处理机制、信息拦截机制
- 鼠标和键盘处理事件
- Qt 学习(8)Qt Creator中鼠标键盘事件的处理实现自定义鼠标指针(转)
- Qt 键盘、鼠标事件的处理
- C#中处理鼠标和键盘的事件
- C#处理鼠标和键盘事件
- 精通Silverlight——12.2 处理键盘和鼠标事件
- C#处理鼠标和键盘事件