* Graphics g - используемый Graphics
* int x - центр X
* int y - центр Y
* int radius - радиус
* int color - цвет в виде 0xXXXXXX
***/
private void addRoundGradient(Graphics g, int x, int y, int radius, int color) {
for(int i = x-radius; i < x+radius+1; i++) {
for(int j = y-radius; j < y+radius+1; j++) {
// Формула расчёта расстояния от проверяемой точки до центра круга
int rr = (int)Math.sqrt((i-x)*(i-x)+(j-y)*(j-y));
// Если проверяемая точка попадает в диапазон радиуса
if(rr <= radius) {
//Собираю цвет
int alpha = (int)(255*(1-(float)rr/(float)radius));
int tmp_color = alpha << 24 | color;
g.drawRGB(new int[]{tmp_color}, 0, 1, i, j, 1, 1, true);
}
}
}
}