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

現在、回転は 2D 空間で行われていますが、四角形の回転を集中させることができないようです。代わりに、長方形はグローバル ポイント 0,0 を中心に回転し続けます。

回転と移動の設定が間違っているか、順序が間違っている可能性があると思います。

このコードが目的の出力を生成するのを妨げているのは望ましくありません。提案や回答をいただければ幸いです。

ありがとう。

4

1 に答える 1

1

平行移動してから回転する必要があります。最初に回転すると、回転を考慮して移動します。したがって、90 度回転すると、平行移動も 90 度回転します。操作の順序を逆にしてみてください。

LIBGDX は OpenGL に十分近いので、OpenGL のチュートリアルはこの種のことで役に立ちます。

また、 ShapeRendererクラスもチェックしてください。このクラスの一部が隠されています。

于 2013-08-20T22:46:01.200 に答える