有人能告诉我真正的快速方法,当您有了坐标时,如何在lwjgl中以var度旋转纹理
和起源?
好吧,现在看起来像这样:
x / y是纹理的中心。
public void render(float x, float y) {
glPushMatrix();
texture.bind();
glTranslatef(x - xOrigin, y - yOrigin, 0);
//This is false. ignore it
//glRotatef(45f, 0f, 0f, 1f);
glBegin(GL_QUADS);
{
glTexCoord2f(0, 0);
glVertex2f(0, 0);
glTexCoord2f(0, width);
glVertex2f(0, height);
glTexCoord2f(texture.getWidth(), texture.getHeight());
glVertex2f(width, height);
glTexCoord2f(texture.getWidth(), 0);
glVertex2f(width, 0);
}
glEnd();
glPopMatrix();
}
谢谢
最佳答案
如果要旋转纹理,则只需更改UV坐标,从而重新排列glTexCoord2f(U, V)
,尽管仅重新排列它们一次,每次重新排列只会使它们旋转大约90deg / 1.57rad,尽管如果您希望较小的纹理旋转,则可以可以使用三角函数cos和sin函数自己计算U,V坐标。