Java LWJGL仅旋转屏幕上的一个对象

Java LWJGL仅旋转屏幕上的一个对象,java,3d,rotation,lwjgl,Java,3d,Rotation,Lwjgl,我正在尝试旋转屏幕上两个对象中的一个。我该怎么做?我只能让它旋转屏幕上的所有对象。 代码: 到目前为止我已经有了代码。在不重置矩阵的情况下无休止地调用glRotated是个坏主意。舍入误差将累积。您当前不会调用每个帧的glIdentity。按以下方式渲染每个帧: 调用glIdentity 绘制第一个四边形 轮换 画第二个四边形 渲染两个四边形的旋转差在三个轴上仅为1/10度,这是不明显的 请务必阅读OpenGL,了解OpenGL编程的当前方式,并尝试改进您的代码。看起来好像你不太明白自己在做什么

我正在尝试旋转屏幕上两个对象中的一个。我该怎么做?我只能让它旋转屏幕上的所有对象。 代码:


到目前为止我已经有了代码。

在不重置矩阵的情况下无休止地调用
glRotated
是个坏主意。舍入误差将累积。您当前不会调用每个帧的
glIdentity
。按以下方式渲染每个帧:

  • 调用
    glIdentity
  • 绘制第一个四边形
  • 轮换
  • 画第二个四边形
  • 渲染两个四边形的旋转差在三个轴上仅为1/10度,这是不明显的


    请务必阅读OpenGL,了解OpenGL编程的当前方式,并尝试改进您的代码。看起来好像你不太明白自己在做什么,没有冒犯的意思。

    使用glPushMatrix();在旋转变换和glPopMatrix()之前;渲染第二个四边形后,只有第二个四边形将受到旋转变换的影响。

    是否看到两个四边形?两者都是旋转的?目前你只能旋转很小的角度(十分之一度),这很难被注意到。我在游戏循环之前调用了glIdentity(),所以它每帧旋转0.1度
                glColor3f(1, 0, 0);
            glBegin(GL_QUADS);
                glVertex3f(0f, 0f, 0f);
                glVertex3f(0f, .5f, 0f);
                glVertex3f(.5f, .5f, 0f);
                glVertex3f(.5f, 0f, 0f);
            glEnd();
            glRotated(.1, 0f, 1f, 0f);
            glRotated(.1, 1f, 0f, 0f);
            glRotated(.1, 0f, 0f, 1f);
            glBegin(GL_QUADS);
                glVertex3f(2f, 0f, 0f);
                glVertex3f(2f, .5f, 0f);
                glVertex3f(2.5f, .5f, 0f);
                glVertex3f(2.5f, 0f, 0f);
            glEnd();