太阳系和机器人的实现
全局坐标系和局部坐标系
如果用全局坐标系的思想来考虑问题,那么必须要注意矩阵乘法的顺序和代码中的顺序是相反的。而用局部坐标系来思考的话,所有的操作都是针对于当前不断变化的坐标系,因此,矩阵乘法很自然的与他们再代码中出现的顺序一样。
太阳系的实现
glPushMatrix()和glPopMatrix()可以消除上一次变换对本次变换的影响,使得本次变换都是基于世界坐标系的原点为参考点进行的。因此,实现太阳系,只需要把太阳先画出(默认在世界坐标系原点),然后保存当前视图,绘制行星,恢复视图,这种思路采用了全局坐标系的思想。
glPushMatrix();
glRotatef((GLfloat)day,0.0,1.0,0.0);
glTranslatef(1.0,0.0,0.0);
glutWireSphere(0.2