1

如何在像素图上绘制一个带有平滑边框的圆圈?

配置中的普通“sample”参数不会影响像素图。

编辑:

 Pixmap ds = new Pixmap(width,height, Pixmap.Format.RGBA8888);
 ds.setColor(color);
 ds.fillCircle(ds.getWidth()/2, ds.getWidth()/2, (ds.getWidth()-20)/2);
 texture = new Texture(ds);

 ds.dispose();

圆的半径为 200px。

使用 shaperenderer 创建的普通圆形会产生一个完美光滑的圆形......

4

1 回答 1

2

像素图圈的问题是,它只使用一种颜色,没有渐变/透明度。

我猜你想动态创建圆,因为它每次都可以有不同的半径?否则创建具有所需大小的图像。你需要三种不同的尺寸吗?做三个不同的图像,等等。

如果您需要数百种不同的尺寸,我仍然会创建图像,假设每十个“步”,然后选择最近的一个并缩放。

如果以上都不能用,就看你需要画多少圈了。如果它只有“少数”(可能是一些选择圆圈或类似的),我会使用形状渲染器(只需测量渲染循环需要多少时间)。

如果这一切都不是你的解决方案,你需要自己创建一个带有像素图的圆圈,我不是图形专家,但我想你可以在绘画程序中创建一个你想要的圆圈,看看什么颜色值它位于边缘,以便您可以为像素图模拟这些值。

请注意,像素图本身非常昂贵,您不应将其用于动态创建纹理(在初始化方法中进行)并且绘制单个纹理也很糟糕,因为纹理更改会导致批量刷新。因此,如果您不将它们全部合并到纹理图集中,使用形状渲染器可能会更快。

于 2015-10-21T20:50:26.587 回答