2015-10-21 4 views
0

Как я могу нарисовать круг с гладкой рамкой на pixmap?Создать круг pixmap с плавной рамкой

Обычный параметр «образец» в конфигурации не влияет на pixmap.

РЕДАКТИРОВАТЬ:

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 производит совершенно гладкий круг ...

+0

Вы должны добавить код, который вы уже пробовали, а не просто «Как это сделать». Трудно сказать, в чем проблема. Тем не менее, чем больше пикселей в радиусе, тем более гладкий круг, вы не можете получить гладкий круг с небольшой pixmap – EssEllDee

+0

Я отредактировал мое сообщение. Круг, созданный с помощью shaperenderer, создает ровный круг (тот же размер!). –

ответ

1

Проблемы у вас с пиксельной картой кругом, что он использует только один цвет, не градиенты/прозрачности.

Я думаю, вы хотите создать круг «на лету», так как он может иметь разный радиус каждый раз? В противном случае создайте изображение с необходимым размером. Вам нужны три разных размера? Сделайте три разных изображения и так далее.

Если вам нужны сотни разных размеров, я бы по-прежнему создавал изображения, скажем, для каждого десятого «шага», а затем выбирал ближайший и масштабировал.

Если вы не можете использовать все вышеперечисленное, это зависит от того, сколько кругов вам нужно нарисовать. Если это только «несколько» (возможно, какой-то круг выбора или аналогичный), я бы использовал средство визуализации фигуры (просто измерить, сколько времени занимает цикл рендеринга).

Если это не решение для вас, вам нужно создать круг с pixmap самостоятельно, я не графический парень, но я думаю, вы могли бы создать круг, как вы хотите, в программе рисования и какие значения цвета у него есть на краю, чтобы вы могли имитировать эти значения для вашей pixmap.

Обратите внимание, что pixmap сам по себе довольно дорог, вы не должны использовать его для создания текстур «на лету» (сделайте это в методе инициализации). И рисовать отдельные текстуры тоже плохо, так как изменение текстуры вызывает партию промывать. Таким образом, даже если вы не объедините их все в атлас текстуры, возможно, даже быстрее использовать инструмент рендеринга.