如何通过路径在LibGDX中绘制自定义形状?

时间:2019-11-19 15:15:59

标签: java android graphics libgdx shapes

考虑一下,我必须创建一个由一些元素,包括直线,矩形和/或曲线(贝塞尔曲线,立方...)组成的自定义/复杂形状。在标准Java中,我们具有Path2D元素,该元素使我们可以通过预定义的点来执行其中的一些元素。下面的方法演示了一种简单的方法来返回path

    private Path2D aShape(double x, double y) {
        ArrayList<double[]> points = new ArrayList<>(
                Arrays.asList(
                        new double[]{x, y},
                        new double[]{x - (L * 0.2588190451), y - (L * 0.4482877361)},
                        new double[]{x, y - (L * 0.7071067812)},
                        new double[]{x + (L * 0.2588190451), y - (L * 0.4482877361)}));

        Path2D path = new Path2D.Double();
        path.moveTo(points.get(0)[0], points.get(0)[1]);
        for (int i = 1; i < points.size(); ++i) {
            //line or anything avaliable...
            path.lineTo(points.get(i)[0], points.get(i)[1]);
        }
        path.closePath();

        return path;
    }

之后,可以用Graphics2D来绘制此方法。但是,在LibGDX库中,我(至少至今)没有发现任何以此方式工作的元素,甚至没有提供绘制曲线等功能的元素(如Path2D)。

对于我的测试,我试图通过遵循以下路径来绘制music treble_clef,但没有找到实现这一目标的技巧。

在LibGDX中通过传递的路径执行自定义形状绘制的方法是什么?

1 个答案:

答案 0 :(得分:1)

您应该使用 ShapeRenderer 。它具有绘制线条,圆弧,校正等的方法。

Docs are here