[求助]关于Opengl的多次旋转问题
小弟由于工作原因,最新初学Opengl,现在碰到了一个问题,那就是一个物体的多次旋转,是这样的,
我想让一个物体首先在X轴旋转A角度,然后按照Y轴旋转B角度,最后在绕Z轴旋转C角度,按理说应该是下列3行代码
glrotatef(A,1,0,0);
glrotatef(B,0,1,0);
glrotatef(C,0,0,1);
但是,实际发现旋转的不对,查书原来知道glrotatef旋转的是坐标系,而不是物体,这样的话在绕X轴旋转的时候,
其实Y轴已经改变,这样在转的话就已经错误了.
从网上查资料也没有很好的解救问题,请问各位大侠,如何才能三次旋转都按照世界坐标系,而不是模型坐标系
[解决办法]
用矩阵!
[解决办法]
glPushMatrix();
glrotatef(C,0,0,1);
glPushMatrix();
glrotatef(B,0,1,0);
glPushMatrix();
glrotatef(A,1,0,0);
glPopMatrix();
glPopMatrix();
glPopMatrix();
看看这样行不行
[解决办法]
通过glPushMatrix和glPopMatrix控制,在局部坐标系选择即可。
去看看恒星系的例子。