3-8
来源:互联网 发布:马士兵大数据 编辑:程序博客网 时间:2024/05/01 20:34
从屏幕坐标到世界坐标的逆变换.
//3-8.cpp -- 2013-04-11-22:20#include <gl/glut.h>#include <stdlib.h>#include <stdio.h>void Display(void){glClear(GL_COLOR_BUFFER_BIT) ;glFlush() ;}void Reshape(int width, int height){glViewport(0, 0, (GLsizei)width, (GLsizei)height) ;glMatrixMode(GL_PROJECTION) ;glLoadIdentity() ;gluPerspective(45, (GLfloat)width / (GLfloat)height, 1, 100) ;glMatrixMode(GL_MODELVIEW) ;glLoadIdentity() ;}void Mouse(int button, int state, int x, int y){GLint viewport[4] ;GLdouble mvMatrix[16] ;GLdouble projMatrix[16] ;GLint realY ;GLdouble wx, wy, wz ;switch (button){case GLUT_LEFT_BUTTON:if (state == GLUT_DOWN){glGetIntegerv(GL_VIEWPORT, viewport) ;glGetDoublev(GL_MODELVIEW_MATRIX, mvMatrix) ;glGetDoublev(GL_PROJECTION_MATRIX, projMatrix) ;realY = viewport[3] - (GLint)y - 1 ;printf("Coordinates at cursor are (%4d, %4d)\n", x, realY) ;gluUnProject((GLdouble)x, (GLdouble)realY, 0,mvMatrix, projMatrix, viewport,&wx, &wy, &wz) ;printf("World coords at z = 0 are (%f, %f, %f)\n",wx, wy, wz) ;gluUnProject((GLdouble)x, (GLdouble)realY, 1,mvMatrix, projMatrix, viewport,&wx, &wy, &wz) ;printf("World coords at z = 1 are (%f, %f, %f)\n",wx, wy, wz) ;}break ;case GLUT_RIGHT_BUTTON:if (state == GLUT_DOWN)exit(0) ;break ;default:break ;}}void Keyboard(unsigned char key, int x, int y){ switch (key) { case 27: exit(0); break; }} int main(int argc, char** argv){ glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (500, 500); glutInitWindowPosition (100, 100); glutCreateWindow (argv[0]); glutDisplayFunc(Display); glutReshapeFunc(Reshape); glutKeyboardFunc (Keyboard); glutMouseFunc(Mouse); glutMainLoop(); return 0;}
- 8-3
- 3-8
- 8-3
- 3-8
- 8-3
- 8-3
- 3 3 8 8四则运算得24
- 2008-8-3
- [Revolution]2009-3-8
- 2010-3-8
- 札记8-3
- 2010/8/3
- 2011-3-8
- 3月8号
- 3月8日
- 8-3编程器
- 8月新作3
- windows Phone 8 (3)
- Tomcat 数据源 -- 原理、配置、使用
- JAVA GC垃圾收集器的分析
- 一些实用的 jQuery 技巧
- 快速排序
- 第六堂课后作业
- 3-8
- getline 的不同使用方法
- IOS 推送通知和消息 php做推送服务端
- 黑马程序员_Java自学学习笔记(一)----环境搭建以及数据类型
- The Android Evolution of Supporting Multiple Screens
- jQuery Ajax 实例 全解析
- ofbiz在myeclipse中启动时出现的几个问题
- jQuery中事件加载 DOM—@ready中调用其他方法,会提示缺少对象的错误
- Java Socket 网络编程常见异常