JAVA LWJGL纹理旋转
有人能告诉我,当你有坐标的时候,如何在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();
}
谢谢
# 1 楼答案
如果你想旋转纹理,你只需要改变UV坐标,从而重新排列
glTexCoord2f(U, V)
尽管重新排列纹理,每次重新排列只会旋转大约90度/1.57rad,但是如果你想要纹理的较小旋转,你只需要计算U,V使用三角函数cos和sin函数来协调你自己