1
我面临着旋转立方体的问题,我的要求是旋转立方体,以便它的新位置从一个面的末端开始, 我试过使用opengl es命令glrotatef(90,0,1)旋转立方体,这里发生在立方体中心的旋转我想移动立方体的右角。 如果我不清楚请让我知道更改立方体旋转的轴从中心到最右角的立方体在opengl es
我面临着旋转立方体的问题,我的要求是旋转立方体,以便它的新位置从一个面的末端开始, 我试过使用opengl es命令glrotatef(90,0,1)旋转立方体,这里发生在立方体中心的旋转我想移动立方体的右角。 如果我不清楚请让我知道更改立方体旋转的轴从中心到最右角的立方体在opengl es
rotatef
围绕原点旋转。因此,您可以调整立方体几何图形,使其坐标以原点排列在要旋转的面上,也可以在运行时自行完成,快速调用translatef
。
因此,假设你的立方体是2个单位在每一个方向(即从中心的积极和消极扩展一个单元),然后在那里你可能有类似:
glRotatef(90, 0, 1, 0);
somehowDrawCube();
你会把:
glRotatef(90, 0, 1, 0);
glTranslatef(-1, 0, 0); // to align the right face onto the local origin
somehowDrawCube();
谢谢你回答我的问题,一个更额外的问题,确实有可能改变原语的支点在android系统的OpenGL ES – user1219096 2011-05-24 16:12:41
不,所有的旋转是围绕中心。通常的做法是移动物体,以便旋转的枢轴点位于中心位置,进行旋转,然后向后移动,以便以正确的中心为中心。其中,因为你在OpenGL中应用的方式通常意味着'glTranslatef(-vector to pivot); glRotatef(根据需要); glTranslatef(vector to pivot);' – Tommy 2011-05-24 16:35:01