opengl里面的glRotated执行顺序是顺着的还是倒着的?C/C++ codeglRotated(xRot , 1.0, 0.0, 0.0)glRotated
opengl里面的glRotated执行顺序是顺着的还是倒着的?
- C/C++ code
glRotated(xRot , 1.0, 0.0, 0.0); glRotated(yRot, 0.0, 1.0, 0.0);
是先执行绕X轴转? 还是先执行绕y轴转?
[解决办法]
按照你的顺序来。GL是个状态机。
[解决办法]
先X后Y
[解决办法]
如果真的是倒着的。麻烦楼主上图看看效果。
我也学习一下
[解决办法]
[解决办法]
这个得看具体的运行环境,楼主可以试试~
[解决办法]
其实怎么解释都是对的,以一般的理解,是倒着计算的,因为矩阵的乘法的原因,你看一下相关的书籍,很简单的.
但是这样对设计程序的人来说很不方便,那么这里有比较讨巧的方法
可以看成是正着计算的
方法就在于,你把rotate等函数执行的结果看作是跟物体固连的那个局部做标下绕着大的绝对坐标系作运动
从数学上来解释的话,就是相对运动的问题,与矩阵相乘,一个是左乘,一个是右乘,两者结果是一样的
[解决办法]
其实怎么解释都是对的,以一般的理解,是倒着计算的,因为矩阵的乘法的原因,你看一下相关的书籍,很简单的.
但是这样对设计程序的人来说很不方便,那么这里有比较讨巧的方法
可以看成是正着计算的
方法就在于,你把rotate等函数执行的结果看作是跟物体固连的那个局部做标下绕着大的绝对坐标系作运动
从数学上来解释的话,就是相对运动的问题,与矩阵相乘,一个是左乘,一个是右乘,两者结果是一样的
[解决办法]
lz看你发了好几个帖子都是opengl入门的,是在学么
[解决办法]
这个是矩阵乘法的问题。
对一个 矩阵/图 X 依次做AB两个线形变换
第一步:X' = AX
第二步:X'' = B(X') = (BA)X
显然也就相当于是做了 (BA)这一个线性变换
上面的当我没说……得查一下资料。lz可以:看一下实际编程效果 或者把translate和rotate的矩阵的值贴上来看看
另外,translate和rotate的问题。
旋转的是ModelView矩阵(模型矩阵)的坐标系而不是投影矩阵(名字忘了)
所以translate(1, 0, 0)相当于Model坐标系的原点,从Perspective坐标系的(0, 0, 0)移到了(1, 0, 0)
如果我的理解不对,请指正!
