java - lwjgl 和 slick - 旋转光滑纹理

标签 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);
glTexCoord2f(0,1);
glVertex2f(x-r,y+r);
glEnd();

非常基本。但我很难找到如何旋转纹理,或绘制旋转的纹理。

最佳答案

详细说明@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 的角度以度为单位,而不是弧度。

关于java - lwjgl 和 slick - 旋转光滑纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13409074/

相关文章:

c++ - OpenGL - 在一个函数中加载多个纹理

memory-management - 在 XNA 中,处理我不再需要的纹理的最佳方法是什么?

textures - SDL2 纹理重复/环绕属性

java - 转义字符之间的字符串的正则表达式

Java SWT 列表 - 使其不可选择

opengl - 低多边形锥体 - 尖端平滑阴影

c++ - 如何使用 glReadPixels 读取 float 据

java - 在子实体中更新或插入新行

java - 每当发现重复键时如何创建新的 HashMap?

java - 使用 jBullet 的 LWJGL 第一人称相机