JAVA - LWJGL - 纹理旋转

时间:2013-08-07 19:54:08

标签: java rotation 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 个答案:

答案 0 :(得分:0)

如果你想旋转纹理,你只需要改变UV坐标,从而重新排列glTexCoord2f(U, V)虽然只是重新排列它们只会旋转它们大约90度/ 1.57rad每重新排列,但如果你想要更小的旋转对于纹理,你可以使用三角函数cos和sin函数自己计算U,V坐标。