【问题标题】:Draw and Rotate a Equilateral Triangle in Libgdx在 Libgdx 中绘制和旋转等边三角形
【发布时间】:2016-03-19 08:53:17
【问题描述】:

我一直在尝试使用 libgdx 绘制和旋转等边三角形。首先,我创建了一个以 (50f, 50f) 为中心的任意等边三角形,边长为 30f。我想使用 ShapeRenderer 来绘制我的三角形并根据此代码旋转:

Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.identity();
shapeRenderer.translate(50f, 50f, 0); // center of triangle
shapeRenderer.setColor(1, 1, 1, 1);


shapeRenderer.rotate(0, 0, 1, world.ship.rotation);

shapeRenderer.triangle(50f-15f, 50f-13f, 50f+15f, 50f-13f, 50f,50f+13f);
shapeRenderer.end();

问题是三角形围绕与中心不同的轴旋转。

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

    我想通了:

    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
    shapeRenderer.identity();
    shapeRenderer.translate(150f, 150f, 0);
    shapeRenderer.setColor(1, 1, 1, 1);
    
    
    shapeRenderer.rotate(0, 0, 1, world.ship.rotation);
    
    shapeRenderer.triangle(0f-15f, 0f-13f, 0+15f, 0f-13f, 0f,0f+13f);
    shapeRenderer.end();
    

    您必须将三角形置于原点的中心,因为 libgdx 只能相对于原点进行旋转。然后你翻译你的旋转形状(请记住,转换是根据文档以你的代码的相反顺序完成的,所以在我的代码中 rotate() 先到 setColor() 然后 translate())。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 2013-04-08
      • 2016-07-30
      • 2023-01-30
      相关资源
      最近更新 更多