1

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

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

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();

现在,旋转发生在二维空间中,但我似乎无法集中矩形的旋转。相反,矩形一直围绕全局点 0,0 旋转。

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

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

谢谢。

4

1 回答 1

1

你应该翻译,然后旋转。如果您先旋转,您将在考虑旋转的情况下进行翻译。因此,如果您旋转 90 度,您的平移也将旋转 90 度。尝试颠倒您的操作顺序。

LIBGDX 与 OpenGL 非常接近,因此 OpenGL 教程可以帮助您完成这类事情,仅供参考。

另请查看ShapeRenderer类,因为它对您隐藏了其中的一些内容。

于 2013-08-20T22:46:01.200 回答