opengl中局部坐标和全局坐标之我的理解
来源:互联网 发布:网络小祖宗是什么意思 编辑:程序博客网 时间:2024/04/28 01:25
很多资料里,包括红宝书,关于局部坐标和全局坐标的解释,都有一句话“代码是一样的,只是理解的角度和方式不一样”,相信很多人看了这句话心里都犯嘀咕。
很多人的疑问是,什么时候用全局坐标,什么时候用局部坐标,然后还以为有一个标志或者函数可以在这两个坐标间切换,其实都没有。还是那句话“代码是一样的,只是理解的角度和方式不一样”,哈哈~~别打我。。。
局部坐标和全局坐标,通俗的理解,我觉得可以这样理解,全局坐标就是固定在那里不动的,物体(局部坐标)在动而它不动。而局部坐标就是绑定在物体身上的,物体跟坐标一起移动。而且物体的旋转也即局部坐标的旋转,所以局部坐标的xyz轴的指向将随着旋转不停改变。
红宝书里说得很好,因为这两种坐标有了上面的特性,所以就有了理解上的差异。而且书上那个例子也讲的很好,我就不说了,推荐去看一下。
接下来上代码,解释我的理解。
glLoadIdentity(); //重置矩阵
glTranslatef(0.0f,0.0f,zoom);//将物体(相对于全局坐标)或者局部坐标往z轴移动zoom个单位
glRotatef(tilt,1.0f,0.0f,0.0f);//沿x轴倾斜tilt个角度
glRotatef(star[loop].angle,0.0f,0.0f,1.0f);//沿z轴旋转angle个角度,局部坐标旋转时,其x,y,z轴所指向也在不停改变。从全局固定坐标的角度来看,此效果相当于公转。
glTranslatef(star[loop].dist,0.0f,0.0f);//想x轴方向移动dist个单位长度
glRotatef(-star[loop].angle,0.0f,0.0f,1.0f);//沿z轴旋转-angle个角度,即再转回来
glRotatef(-tilt,1.0f,0.0f,0.0f);//同上
这是NeHe教程里第9课的代码.
上面这段代码既可以按全局坐标理解也可以按局部坐标理解,这就是为什么很多人说上面那句经典的话。
一个简单的方法,按全局坐标来理解的话,则代码从下往上看。而按局部坐标来理解,则代码从上往下看。你可以试着在纸上或是脑中画一下,最后它们的结果是一样的,这就是那句话的精髓。
- opengl中局部坐标和全局坐标之我的理解
- JS局部坐标和全局坐标的转换
- openGL中的全局固定坐标系统和局部移动坐标系统
- opengl 坐标的理解
- 学习OpenGLProgrammingGuide7thEdition有感-OpenGl中的全局及局部坐标系统理解
- chai3d中的全局坐标和局部坐标作用
- UIKit坐标,OpenGL坐标,NodeSpace坐标的一些理解
- OPENGL 的世界坐标和 纹理坐标
- OPENGL 的世界坐标和 纹理坐标
- opengl中各种坐标的关系的理解
- OpenGL ES 之对各种坐标系统的记录理解
- OpenGL模型变换中局部坐标系和全局坐标系的理解
- Opengl和windows的逻辑坐标到设备坐标转换的理解
- unity 3D中关于世界坐标和局部坐标的区别
- OpenGL中纹理坐标和顶点坐标表示
- OpenGL中屏幕坐标转为OpenGL坐标
- Opengl投影矩阵和世界及局部坐标操作
- OpenGL中齐次坐标背后的真相和坐标的归一化
- Linux 防火墙iptables 学习笔记(五)linux+iptables构筑防火墙实例
- poj 2709 贪心
- linux_sound_alsa_Android+alsa音频系统中的几个问题
- 系统调用的理解
- linux_sound_alsa_ALSA体系SOC子系统中数据流分析
- opengl中局部坐标和全局坐标之我的理解
- linux_sound_alsa_ALSA体系SOC子系统中hw_params逻辑
- 黑马程序员——交通灯项目思路
- 关于javap的研究
- 创业者都在纠结和困惑些啥?
- 黑马程序员——银行业务调度系统逻辑
- Tomcat启动过程原理详解
- Android SDK 升级方法
- UIButton扩大响应区域 点击高亮光晕效果