我在之前的博客中曾提到过,OpenGL中坐标是采用行向量表示的,与之相对应的是,在矩阵变换中使用的是变换矩阵的转置,并且使用的是后乘的方式.本文直接使用下面的代码来及其后的图示来解释函数 p,li { white-space: pre-wrap } void glMultMatrixf( const GLfloat *m ) p,li { white-space: pre-wrap } void glPushMatrix( void ) p,li { white-space: pre-wrap…
glLoadIdentity和glMultMatrix   glLoadIdentity的作用是将当前模型视图矩阵转换为单位矩阵(行数和列数相同的矩阵,并且矩阵的左上角至右下角的连线上的元素都为1,其它元素都为0),这样可以方便矩阵的乘法运算.     glMultMatrix矩阵的乘法. 如: glLoadIdentity(); glMultiMatrix(A); glMultiMatrix(B); glMultiMatrix(C); 针对行向量和当前矩阵,上述代码可等价于: (vx vy v…
昨天学习了如何使用codeblocks来编译运行一个opengl的项目.在创建一个新的opengl项目时他默认已经写了一个示例,今天我们就上面的例子进行下代码的剖析,以此来敲开opengl的神秘大门. 先把代码贴上来(在此我为每个函数的作用都写上了详细的注释): /* * 该代码是由一位叫Nigel Stewart的写于2003年11月,例子的目的是测试以glut实现球体,圆椎,圆环的纺纱线框和平滑阴影的形状. * 数量的几何栈和切割可以使用热键“-”或“+”调整. */ #ifdef __AP…
首先安装PyOpengl pip install PyOpenGL PyOpenGL_accelerate…
关于PDA.GPS等动态资源的几种GIS解决方案(原创) 今年来GIS发展迅速,特别是实时监控中引入了GPS,PDA等动态资源,使得GIS在各个行业的应用更为广泛. 1.在这些动态资源资源的监控中主要要求的功能如下:(1).动态标绘:动态标绘各种形状的资源(2).轨迹模拟:动态显示轨迹(3).轨迹回放:回放模拟历史轨迹状况(4).移动资源:移动拖放资源放到任意位置以上功能均是根据数据库实时更新读取和保存的 以下是本人对于PDA.GPS等动态资源的几种GIS解决方案的一些思考 2.基于BS的做法比…
OpenGL中图形绘制后,往往需要一系列的变换来达到用户的目的,而这种变换实现的原理是又通过矩阵进行操作的.opengl中的变换一般包括视图变换.模型变换.投影变换等,在每次变换后,opengl将会呈现一种新的状态(这也就是我们为什么会成其为状态机). 有时候在经过一些变换后我们想回到原来的状态,就像我们谈恋爱一样,换来换去还是感觉初恋好,怎么办?强大的opengl就帮我们提供了两个函数:giPushMatrix()和glPopMatrix(); 首先我们要知道,对于矩阵的操作都是对于矩阵栈的栈…
glPushMatrix.glPopMatrix操作事实上就相当于栈里的入栈和出栈. 很多人不明确的可能是入的是什么,出的又是什么. 比如你当前的坐标系原点在你电脑屏幕的左上方.如今你调用glPushMatrix,然后再调用一堆平移.旋转代码等等,然后再绘图.那些平移和旋转都是基于左上角为原点进行变化的.并且都会改变坐标的位置,经过了这些变化后,你的坐标肯定不再左上角了. 那假设想恢复怎么办呢?这时就调用glPopMatrix从栈里取出一个"状态"了,这个状态就是你调用glPushMa…
能找到最好的解释来自:http://www.gamedev.net/topic/489879-glpushmatrixglpopmatrix--glloadmatrixf/ 原理: glPushMatrix didn't fail to push onto the stack; it's job is to push a copy of the current matrix onto a stack of matrices. Those matrices on the stack don't i…
通俗解释glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用 (2012-04-02 09:17:28) 转载▼   对于glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用虽然网上有很多的帖子,而且都试图解释得很详细,但是效果总是越说越黑,模棱两可的.今天我就简单滴说几句,言简意赅,希望大家随便看看之余能把这些个问题搞清楚了.glLoadIdentity()的作用就是把矩阵堆栈中的在栈顶的那个矩阵置为单位矩…
转自 百度百科   glPushMatrix 函数将当前矩阵堆栈推送,通过一个,复制当前矩阵. 这就是后 glPushMatrix 的调用堆栈的顶部矩阵是它下面的相同的.   1. 原理讲解 终于明白为什么使用glPushMatrix()和glPopMatrix()的原因了.将本次需要执行的缩放.平移等操作放在glPushMatrix和glPopMatrix之间.glPushMatrix()和glPopMatrix()的配对使用可以消除上一次的变换对本次变换的影响.使本次变换是以世界坐标系的原点…