如何在LWJGL中围绕其中心旋转矩形?

时间:2013-08-20 22:40:28

标签: java rotation 2d lwjgl rectangles

正如问题所述,我想知道如何围绕其中心旋转绘制的矩形。

我目前正在使用以下代码:

GL11.glPushMatrix();

    GL11.glColor3f(0.3f, 0.3f, 0.3f);

    this.setAngle(this.getAngle()+1);

    GL11.glRotated(270-this.getAngle(),0,0,1);
    GL11.glTranslated(-0.5,-0.5,1);

    GL11.glRectd(this.getX(),this.getY(), this.getX()+this.getWidth(), this.getY()+this.getHeight());

GL11.glPopMatrix();

现在,旋转发生在2D空间中,但我似乎无法集中矩形的旋转。相反,矩形保持围绕全局点0,0旋转。

我认为我的旋转和翻译设置可能不正确或顺序不正确。

我不想阻止此代码生成所需的输出。 任何建议和答案将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

你应该翻译,然后旋转。如果先旋转,则会考虑旋转。因此,如果旋转90度,您的平移也会旋转90度。尝试颠倒您的操作顺序。

LIBGDX足够接近OpenGL,Op​​enGL教程可以帮助你解决这个问题,如fyi。

同时查看ShapeRenderer课程,因为它隐藏了部分内容。