Java lwjgl和光滑-旋转光滑纹理

Java lwjgl和光滑-旋转光滑纹理,java,opengl,textures,lwjgl,slick2d,Java,Opengl,Textures,Lwjgl,Slick2d,我正在创建一个程序来绘制一个对象,它需要“指向”鼠标。为此,我要绘制旋转的图像 我有以下用于绘制对象的代码: glBindTexture(GL_TEXTURE_2D,img.getTextureID()); glBegin(GL_QUADS); glTexCoord2f(0,0); glVertex2f(x-r,y-r); glTexCoord2f(1,0); glVertex2f(x+r,y-r); glTexCoord2f(1,1); glVertex2f(x+r,y+r); glTexCo

我正在创建一个程序来绘制一个对象,它需要“指向”鼠标。为此,我要绘制旋转的图像

我有以下用于绘制对象的代码:

glBindTexture(GL_TEXTURE_2D,img.getTextureID());
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex2f(x-r,y-r);
glTexCoord2f(1,0);
glVertex2f(x+r,y-r);
glTexCoord2f(1,1);
glVertex2f(x+r,y+r);
glTexCoord2f(0,1);
glVertex2f(x-r,y+r);
glEnd();
非常基本。但是我很难找到如何旋转纹理或绘制旋转的纹理。

旋转纹理:

glMatrixMode( GL_TEXTURE );
glLoadIdentity();
glRotatef( angle, 0, 0, 1 );
glMatrixMode( GL_MODELVIEW );
drawTexturedQuad();
旋转四边形:

glPushMatrix();
glRotatef( angle, 0, 0, 1 );
drawTexturedQuad();
glPopMatrix();

要详细说明@genpfault的答案:

如果希望纹理围绕其中心旋转,则需要绘制纹理,使其中心位于(0,0)。试着这样做:

glPushMatrix();
glTranslatef(x,y); // move to the proper position
glRotatef( angle, 0, 0, 1 ); // now rotate

glBindTexture(GL_TEXTURE_2D,img.getTextureID());
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex2f(-r,-r);
glTexCoord2f(1,0);
glVertex2f(+r,-r);
glTexCoord2f(1,1);
glVertex2f(+r,+r);
glTexCoord2f(0,1);
glVertex2f(-r,+r);
glEnd();

glPopMatrix(); // pop off the rotation and transformation
请注意,
glRotatef
的角度以度为单位,而不是弧度