关于glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z)的参数的一些理解
来源:互联网 发布:linux查看服务器型号 编辑:程序博客网 时间:2024/06/01 22:01
今天仔细研究了一下glRotatef()函数参数的具体意义。angle毋庸置疑就是旋转的角度,而x,y,z三个参数则应该看成一个整体表示一个向量,表示物体围绕向量[x,y,z]旋转。下面就具体谈谈自己发现这几个参数意义的过程。
刚看glRotatef()函数的时候对各个参数的意义很是不明白,自己上网查了一查,但发现网上说的却不是我想要的答案。于是潜下心来研究了一番。刚开始看的时候在参数angle上根本就没花什么时间,对于x,y,z三个参数的研究主要分为了如下几个个过程。初看的时候是对三个参数分个来研究的,发现如果x,y,z中仅有一个不为0的话,例如x不为0,若x>0,则表示绕x轴正方向旋转angle度,若x<0,则表示绕x轴负方向旋转angle度,不论x的值是多大,即1.0和0.1代表的都是绕x轴正方向旋转angle度。于是就初步下了一个结论,即x,y,z只表示了三个状态,即大于0表示绕该轴正方向旋转,小于0表示绕该轴负方向旋转,等于0就表示绕该轴不旋转。但是当x,y,z三个参数中至少有两个不为0的时候发现根本不是那么回事,因为当x不为0且为一个定值的时候,y取不同值物体旋转的状态根本就不一样,这就推翻了我第一次的假想。到了这里似乎就遇到了一个瓶颈,任我如何想都想不明白,到了吃饭的时间居然都感觉不到饿。后来实在没有办法的时候还是打算先去吃饭,刚穿上外衣的时候突然一个想法闪进我的脑海,为什么不把x,y,z看成一个整体呢?带着这个疑问我思考了一路,越想越兴奋,最后才向x,y,z应该表示一个向量,即物体旋转时所围绕的那个向量。回来后测试了一下发现[0,1,1]和[0,2,2]所产生的旋转效果是一样的,后来又测试了几组值,我对自己的猜想更加地肯定了。
虽然更加肯定了自己的想法,但还是不能说明它是百分之百正确的,还希望各位找找看看能不能再补充一点或者添加一些其他函数参数意义的说明。
- 关于glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z)的参数的一些理解
- 关于glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z)的参数的一些理解
- glTexCoord2f(GLfloat x, GLfloat y)函数
- gluPerspective(60.0, 1.0*(GLfloat)w/(GLfloat)h, 1.0, 30.0) 的用法
- 关于glRotatef(angle, x, y, z)函数
- CATransform3DMakeRotation的x,y,z参数
- 计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值
- 关于numpy中cov(x)与cover(x,y)的一些理解
- hdu4282 x^z+y^z+x*y*z=k 解的个数
- 10.x.y.z和100.x.y.z的那点故事和事故
- Android关于canvas.translate(x,y)的新理解
- ruby 疑问,关于hash方法的@x*31 ^ @y*13 ^ @z
- 关于Stage3D中的顶点坐标x,y,z与u,v的对应关系
- 对(x&y)+((x^y)>>1)的理解
- 【学习笔记】对 (x&y) + ( (x^y)>>1 ) 的理解
- glTranslatef(0.0f,-20.0f,-40.0f)表示将当前图形向x轴平移0,向y轴平移-20,向z轴平移-40 glScaled(10.0f,10.0f,10.0f)表示将当前图形沿x,y,z轴分别放大为原来的10倍 glRotatef(-
- x > y ? y : x > z ? z : x;
- 散乱点(无序)三维(x,y,z)数据的表示
- secs协议
- 防火墙经典语录
- 初来乍到
- windows驱动程序开发
- 微带线(Microtrip)和带状线(Tripline)
- 关于glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z)的参数的一些理解
- 使用树形结构与CTE实现父子列多层次查询
- 手机操作系统平台与硬件平台各个厂商未来之争的一点不成熟预测(第二节)
- js调用Cookie;对Table调用
- 成功软件项目管理的奥秘
- 【题目15】求字符串的最长重复子串
- 100001 devided by 376
- PolicyKit
- Fedora 9安装vmware tools解决方案