有什么区别
glRotatef(angle, 1.0f, 0.0f, 0.0f);
glRotatef(angle, 0.0f, 0.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)
和
glRotatef(angle, 1.0f, 0.0f, 1.0f);
Run Code Online (Sandbox Code Playgroud)
当我将第二个参数1.0f更改为5.0f时为什么没有变化?最后,如何围绕x = 5而不是x = 0左右旋转对象?
如果要绕x=5你应该做一个glTranslate对x=5无论你的y坐标,然后做glRotate再glTranslate回到原点.
所以像
glTranslate(5, 0, 0);
glRotatef(...);
glTranslate(-5, 0, 0);
Run Code Online (Sandbox Code Playgroud)
对于第一个问题,我包括@ genpfault的完整性答案.这是由于glRotatef()您传入的矢量完成矢量归一化.