【问题标题】:How to rotate rectangle around its center in LWJGL?如何在 LWJGL 中围绕其中心旋转矩形?
【发布时间】:2013-08-23 03:44:52
【问题描述】:

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

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

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 旋转。

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

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

谢谢。

【问题讨论】:

    标签: java rotation 2d lwjgl rectangles


    【解决方案1】:

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

    LIBGDX 与 OpenGL 非常接近,因此 OpenGL 教程可以帮助您解决这类问题,仅供参考。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 1970-01-01
      • 2015-03-29
      • 2012-10-01
      • 1970-01-01
      • 2013-12-18
      • 1970-01-01
      相关资源
      最近更新 更多