bobbyrne01
bobbyrne01

Reputation: 6745

Circle has edges instead of being smooth using libgdx

Any ideas why this is not producing a smooth circle?

public void draw(ShapeRenderer sRenderer) {

    sRenderer.begin(ShapeType.Filled);
    sRenderer.setColor(1.0f, 0.0f, 0.0f, 0.0f);
    sRenderer.identity();
    sRenderer.translate(1.0f, 1.0f, 0);
    sRenderer.rotate(0.0f, 0.0f, 1.0f, (float) Math.toDegrees(getBody().getAngle()));
    sRenderer.circle(0.0f, 0.0f, 1.0f);
    sRenderer.end();
}

screenshot

Upvotes: 2

Views: 1017

Answers (1)

Johnathon Havens
Johnathon Havens

Reputation: 730

circle() takes another argument for setting the number of segments manually. You have it set to estimate and since it's thinking in pixels and not world units it assumed a 1 pixel radius circle.

public void draw(ShapeRenderer sRenderer) {

    sRenderer.begin(ShapeType.Filled);
    sRenderer.setColor(1.0f, 0.0f, 0.0f, 0.0f);
    sRenderer.identity();
    sRenderer.translate(1.0f, 1.0f, 0);
    sRenderer.rotate(0.0f, 0.0f, 1.0f, (float) Math.toDegrees(getBody().getAngle()));
    sRenderer.circle(0.0f, 0.0f, 1.0f, 100);
    sRenderer.end();
}

That should get you somewhere, 100 is just a number I threw in, tune it to your needs.

Upvotes: 4

Related Questions