libgdx shaperenderer如何围绕其中心旋转矩形?

时间:2012-12-30 14:57:50

标签: java libgdx

如何围绕中心旋转矩形?我在ShapeRenderer中找到了旋转函数:

void rotate(float axisX, float axisY, float axisZ, float angle);

但它围绕0,0坐标旋转,我希望围绕其中心旋转形状。

2 个答案:

答案 0 :(得分:10)

如果您查看ShapeRenderer的documentation,第二个示例将向您展示如何在{20,12,2}位置设置框的中心,并使用translate围绕z轴旋转。你需要做同样的事情,例如

this.m_ShapeRenderer.begin(ShapeType.Rectangle);
this.m_ShapeRenderer.setColor(1.f, 1.f, 1.f, 1.f);
this.m_ShapeRenderer.identity();
this.m_ShapeRenderer.translate(20.f, 10.f, 0.f);
this.m_ShapeRenderer.rotate(0.f, 0.f, 1.f, 45.f);
this.m_ShapeRenderer.rect(x, y, 40.f, 20.f);
this.m_ShapeRenderer.end();

希望这有帮助。

答案 1 :(得分:4)

使用此方法(official docs):

public void rect(float x, float y,
                 float originX, float originY,
                 float width, float height,
                 float scaleX, float scaleY,
                 float degrees)

使用ShapeRenderer.ShapeType.Line或ShapeRenderer.ShapeType.Filled在x / y平面中绘制一个矩形。 x和y指定左下角。 originX和originY指定旋转矩形的点。

像这样使用它: (x和y是矩形中心的点)

renderer.rect(x-width/2, y-height/2, 
              width/2, height/2, 
              width, height, 
              1.0f, 1.0f, 
              myRotation);