1

当你有坐标和原点时,有人可以快速告诉我如何在 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();
}

谢谢

4

1 回答 1

0

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

于 2013-08-08T09:35:37.860 回答