考虑一下,我必须创建一个由一些元素,包括直线,矩形和/或曲线(贝塞尔曲线,立方...)组成的自定义/复杂形状。在标准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中通过传递的路径执行自定义形状绘制的方法是什么?