有人能告诉我真正的快速方法,当您有了坐标时,如何在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坐标。

10-06 03:53