我正在准备我的测试,但我需要帮助了解关于轴的旋转。在一个问题中,我将假设一个函数drawHouse()
,它在xy平面中绘制一个线框,如下图所示:
我们获得了多个代码段的选择,并询问哪一个会导致这个转换后的房子:
正确答案如下:但我不确定命令是从后到前还是从前到后执行:
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glScalef(2, 1, 1);
glRotatef(90, 0, 0, 1);
glRotatef(180, 1, 0, 0);
drawHouse();
问题在于我不知道在WHICH轴上旋转的方式,所以如果有人能给我一个简短的总结,我将不得不承担。
答案 0 :(得分:2)
编辑此文字与接受的(不正确)答案完全不同,但在接受答案后我无法删除答案。
转换以相反的顺序应用。
第一次旋转(函数中的最后一次)通过围绕x
轴旋转翻转房屋。
第二个围绕z
轴旋转,使其指向右侧。
最终缩放功能沿x
轴拉伸。
答案 1 :(得分:2)
据推测,您有gl
函数的文档以及应用转换的顺序。如果你根据被修复的轴来看转换,那么只有当转换以相反的顺序发生时,解决方案才有意义,即从glRotatef(180, 1, 0, 0);
开始。所以转换将是