我在这里阅读了文档:http://www.opengl.org/sdk/docs/man2/xhtml/glRotate.xml
它指定角度以度为单位.它说X,Y,Z是向量.如果我说glRotate(2,1,0,0)说我将围绕X轴旋转2度.
如果我说glRotate(2,0.5,0,0)和glRotate(2,0.0174524,0,0)会发生什么
我不明白在那种情况下究竟发生了什么,有人可以帮我解释一下吗?
它是否以角度的百分比旋转?
我有一个有点复杂的3D模型(OpenGL ES 1.1 iPhone SDK v3.0)(即成千上万的顶点和面)我想在模型中心或附近围绕Y轴旋转这个模型.问题是glRotate将我的模型围绕其一个底边中心 /附近的点旋转,而不是靠近模型的中心.想象一下,一辆汽车在灯柱周围开得很紧,这基本上就是我所拥有的.我想让汽车被撞在灯柱上并围绕它旋转.(下面的一些来源)
// BLUE BLOCK----------------------------------------------
glPushMatrix();
{
glTranslatef(blueLocation[0], blueLocation[1], blueLocation[2]);
glRotatef(blueRotAngle, 0.0, 0.0, 1.0);
...
Run Code Online (Sandbox Code Playgroud)
问题:
是否有一种简单的方法来改变OpenGL中的旋转中心?
有什么区别
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左右旋转对象?