2011-04-13 61 views

回答

2

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(); 
+0

谢谢你回答我的问题,一个更额外的问题,确实有可能改变原语的支点在android系统的OpenGL ES – user1219096 2011-05-24 16:12:41

+0

不,所有的旋转是围绕中心。通常的做法是移动物体,以便旋转的枢轴点位于中心位置,进行旋转,然后向后移动,以便以正确的中心为中心。其中,因为你在OpenGL中应用的方式通常意味着'glTranslatef(-vector to pivot); glRotatef(根据需要); glTranslatef(vector to pivot);' – Tommy 2011-05-24 16:35:01