【发布时间】:2014-11-22 13:39:11
【问题描述】:
我正在尝试围绕其中心旋转图像。这是代码:
glPushMatrix();
glTranslatef(-x, -y, 0);
glRotatef(10, 0, 0, 1);
glTranslatef(x, y, 0);
glBindTexture(GL_TEXTURE_2D, img);
glBegin(GL_QUADS);
glTexCoord2i(0, 0);
glVertex2i(x, y);
glTexCoord2i(1, 0);
glVertex2i(x+width, y);
glTexCoord2i(1, 1);
glVertex2i(x+width, y+height);
glTexCoord2i(0, 1);
glVertex2i(x, y + height);
glEnd();
glPopMatrix();
我到处阅读,将我的图像翻译到旋转中心,然后旋转并将其翻译回来。 但是当我一步一步尝试这样做时,我发现当我平移然后旋转它时,它会随着图像一起移动旋转中心,所以它会围绕与图像距离相同的屏幕外的点旋转作为初始点从平移前的初始图像旋转。 谁能告诉我为什么会发生这种情况或如何解决?
【问题讨论】:
-
我认为您应该将中心而不是左上角转换为 (0,0)。