有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    如果你想旋转纹理,你只需要改变UV坐标,从而重新排列glTexCoord2f(U, V)尽管重新排列纹理,每次重新排列只会旋转大约90度/1.57rad,但是如果你想要纹理的较小旋转,你只需要计算U,V使用三角函数cos和sin函数来协调你自己