我在旋转立方体时遇到问题,我的要求是旋转立方体,使其新位置从一个面的末端开始, 我尝试使用opengl es命令glrotatef(90,0,1)旋转立方体,这里旋转发生在立方体的中心我想要移动立方体的右角。 如果我不清楚请告诉我
答案 0 :(得分: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();