Класс RadialGradientPaint
- Все реализуемые интерфейсы:
Paint, Transparency
public final class RadialGradientPaint extends MultipleGradientPaint
RadialGradientPaint позволяет заливать фигуру круговым радиальным цветовым градиентом. Пользователь может указать 2 или более цветов градиента; эта заливка будет выполнять интерполяцию между каждым цветом. Пользователь должен указать круг, задающий градиентный рисунок, который определяется центральной точкой и радиусом. Также можно указать отдельную фокусную точку внутри этого круга, определяющую положение первого цвета градиента. По умолчанию фокус совпадает с центром круга.
Эта заливка сопоставляет первый цвет градиента с фокусной точкой, а последний — с окружностью круга, плавно интерполируя цвета, указанные пользователем между ними. Таким образом, любой отрезок, проведённый от фокусной точки до окружности, охватывает все цвета градиента.
Если указать фокусную точку за пределами радиуса круга, кольца градиентного рисунка будут центрированы в точке, расположенной непосредственно внутри края круга в направлении фокусной точки. При отрисовке вместо указанной фокусной точки будет использоваться это скорректированное положение.
Пользователь должен предоставить массив чисел с плавающей точкой, задающих распределение цветов вдоль градиента. Значения должны находиться в диапазоне от 0.0 до 1.0 и действовать как ключевые кадры градиента (они отмечают точки, в которых градиент должен точно соответствовать определённому цвету).
Если пользователь не задаёт значение первого ключевого кадра равным 0 и/или значение последнего ключевого кадра равным 1, в этих позициях будут созданы ключевые кадры, а первый и последний цвета будут продублированы в них. Поэтому, если пользователь задаёт следующие массивы для создания градиента:
{Color.BLUE, Color.RED}, {.3f, .7f}
они будут преобразованы в градиент со следующими ключевыми кадрами:
{Color.BLUE, Color.BLUE, Color.RED, Color.RED}, {0f, .3f, .7f, 1f}
Пользователь также может выбрать, какое действие объект RadialGradientPaint выполняет при заливке пространства за пределами радиуса круга, задав для CycleMethod значение REFLECTION или REPEAT. Пропорции цветов градиента одинаковы для любого отрезка, проведённого из фокусной точки. На следующем рисунке показано, что расстояние AB равно расстоянию BC, а расстояние AD равно расстоянию DE.
Если преобразования градиента и графической отрисовки равномерно масштабированы, а пользователь задаёт фокус, совпадающий с центром круга, пропорции цветов градиента одинаковы для любого отрезка, проведённого из центра. На следующем рисунке показаны расстояния AB, BC, AD и DE. Все они равны.
Обратите внимание, что из-за дискретизации с точностью до пикселя могут возникать незначительные отклонения расстояний. Если метод циклирования не задан, по умолчанию будет выбран NO_CYCLE, то есть для заливки оставшейся области будет использоваться цвет последнего ключевого кадра.
Параметр colorSpace позволяет пользователю указать цветовое пространство для интерполяции: sRGB по умолчанию или линейное RGB.
В следующем коде показан типичный способ использования RadialGradientPaint, в котором центральная и фокусная точки совпадают:
Point2D center = new Point2D.Float(50, 50);
float radius = 25;
float[] dist = {0.0f, 0.2f, 1.0f};
Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};
RadialGradientPaint p =
new RadialGradientPaint(center, radius, dist, colors);
На этом изображении показан пример кода выше с фокусом по умолчанию (в центре) для каждого из трёх методов циклирования:
Также можно указать фокусную точку, не совпадающую с центром, как в следующем примере кода:
Point2D center = new Point2D.Float(50, 50);
float radius = 25;
Point2D focus = new Point2D.Float(40, 40);
float[] dist = {0.0f, 0.2f, 1.0f};
Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};
RadialGradientPaint p =
new RadialGradientPaint(center, radius, focus,
dist, colors,
CycleMethod.NO_CYCLE);
На этом изображении показан предыдущий пример кода с фокусом, не совпадающим с центром, для каждого из трёх методов циклирования:
- Начиная с:
- 1.6
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе MultipleGradientPaint
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
Краткое описание полей
Поля, объявленные в интерфейсе Transparency
BITMASK, OPAQUE, TRANSLUCENT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RadialGradientPaint |
Создаёт RadialGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки. |
RadialGradientPaint |
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки. |
RadialGradientPaint |
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию. |
RadialGradientPaint |
Создаёт RadialGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки. |
RadialGradientPaint |
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки. |
RadialGradientPaint |
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию. |
RadialGradientPaint |
Создаёт RadialGradientPaint. |
RadialGradientPaint |
Создаёт RadialGradientPaint с цветовым пространством SRGB по умолчанию. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
PaintContext |
createContext |
Создаёт и возвращает PaintContext, используемый для создания кругового радиального цветового градиента. |
Point2D |
getCenterPoint() |
Возвращает копию центральной точки радиального градиента. |
Point2D |
getFocusPoint() |
Возвращает копию фокусной точки радиального градиента. |
float |
getRadius() |
Возвращает радиус круга, задающего радиальный градиент. |
Методы, объявленные в классе MultipleGradientPaint
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency
Подробное описание конструкторов
RadialGradientPaint
public RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors)
RadialGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки.- Параметры:
-
cx— координата X в пользовательском пространстве центральной точки круга, задающего градиент. Последний цвет градиента сопоставляется с окружностью этого круга. -
cy— координата Y в пользовательском пространстве центральной точки круга, задающего градиент. Последний цвет градиента сопоставляется с окружностью этого круга. -
radius— радиус круга, задающего границы цветового градиента -
fractions— числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента -
colors— массив цветов, используемых в градиенте. Первый цвет используется в фокусной точке, последний — по окружности круга. - Вызывает исключения:
-
NullPointerException— если массивfractionsравен null или массивcolorsравен null -
IllegalArgumentException— еслиradiusне является положительным числом, либоfractions.length != colors.length, либо размерcolorsменьше 2, либо значениеfractionsменьше 0.0 или больше 1.0, либо значенияfractionsне заданы в строго возрастающем порядке
RadialGradientPaint
public RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors)
RadialGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки.- Параметры:
-
center— центральная точка круга, задающего градиент, в пользовательском пространстве -
radius— радиус круга, задающего границы цветового градиента -
fractions— числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента -
colors— массив цветов, используемых в градиенте. Первый цвет используется в фокусной точке, последний — по окружности круга. - Вызывает исключения:
-
NullPointerException— если точкаcenterравна null, массивfractionsравен null или массивcolorsравен null -
IllegalArgumentException— еслиradiusне является положительным числом, либоfractions.length != colors.length, либо размерcolorsменьше 2, либо значениеfractionsменьше 0.0 или больше 1.0, либо значенияfractionsне заданы в строго возрастающем порядке
RadialGradientPaint
public RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
RadialGradientPaint с цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки.- Параметры:
-
cx— координата X в пользовательском пространстве центральной точки круга, задающего градиент. Последний цвет градиента сопоставляется с окружностью этого круга. -
cy— координата Y в пользовательском пространстве центральной точки круга, задающего градиент. Последний цвет градиента сопоставляется с окружностью этого круга. -
radius— радиус круга, задающего границы цветового градиента -
fractions— числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента -
colors— массив цветов, используемых в градиенте. Первый цвет используется в фокусной точке, последний — по окружности круга. -
cycleMethod—NO_CYCLE,REFLECTилиREPEAT - Вызывает исключения:
-
NullPointerException— если массивfractionsравен null, массивcolorsравен null илиcycleMethodравен null -
IllegalArgumentException— еслиradiusне является положительным числом, либоfractions.length != colors.length, либо размерcolorsменьше 2, либо значениеfractionsменьше 0.0 или больше 1.0, либо значенияfractionsне заданы в строго возрастающем порядке
RadialGradientPaint
public RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
RadialGradientPaint с цветовым пространством SRGB по умолчанию, используя центр в качестве фокусной точки.- Параметры:
-
center— центральная точка круга, задающего градиент, в пользовательском пространстве -
radius— радиус круга, задающего границы цветового градиента -
fractions— числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента -
colors— массив цветов, используемых в градиенте. Первый цвет используется в фокусной точке, последний — по окружности круга. -
cycleMethod—NO_CYCLE,REFLECTилиREPEAT - Вызывает исключения:
-
NullPointerException— если точкаcenterравна null, массивfractionsравен null, массивcolorsравен null илиcycleMethodравен null -
IllegalArgumentException— еслиradiusне является положительным числом, либоfractions.length != colors.length, либо размерcolorsменьше 2, либо значениеfractionsменьше 0.0 или больше 1.0, либо значенияfractionsне заданы в строго возрастающем порядке
RadialGradientPaint
public RadialGradientPaint(float cx, float cy, float radius, float fx, float fy, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
RadialGradientPaint с цветовым пространством SRGB по умолчанию.- Параметры:
-
cx— координата X в пользовательском пространстве центральной точки круга, задающего градиент. Последний цвет градиента сопоставляется с окружностью этого круга. -
cy— координата Y в пользовательском пространстве центральной точки круга, задающего градиент. Последний цвет градиента сопоставляется с окружностью этого круга. -
radius— радиус круга, задающего границы цветового градиента -
fx— координата X точки в пользовательском пространстве, с которой сопоставляется первый цвет -
fy— координата Y точки в пользовательском пространстве, с которой сопоставляется первый цвет -
fractions— числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента -
colors— массив цветов, используемых в градиенте. Первый цвет используется в фокусной точке, последний — по окружности круга. -
cycleMethod—NO_CYCLE,REFLECTилиREPEAT - Вызывает исключения:
-
NullPointerException— если массивfractionsравен null, массивcolorsравен null илиcycleMethodравен null -
IllegalArgumentException— еслиradiusне является положительным числом, либоfractions.length != colors.length, либо размерcolorsменьше 2, либо значениеfractionsменьше 0.0 или больше 1.0, либо значенияfractionsне заданы в строго возрастающем порядке
RadialGradientPaint
public RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
RadialGradientPaint с цветовым пространством SRGB по умолчанию.- Параметры:
-
center— центральная точка круга, задающего градиент, в пользовательском пространстве. Последний цвет градиента сопоставляется с окружностью этого круга. -
radius— радиус круга, задающего границы цветового градиента -
focus— точка в пользовательском пространстве, с которой сопоставляется первый цвет -
fractions— числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента -
colors— массив цветов, используемых в градиенте. Первый цвет используется в фокусной точке, последний — по окружности круга. -
cycleMethod—NO_CYCLE,REFLECTилиREPEAT - Вызывает исключения:
-
NullPointerException— если одна из точек равна null, массивfractionsравен null, массивcolorsравен null илиcycleMethodравен null -
IllegalArgumentException— еслиradiusне является положительным числом, либоfractions.length != colors.length, либо размерcolorsменьше 2, либо значениеfractionsменьше 0.0 или больше 1.0, либо значенияfractionsне заданы в строго возрастающем порядке
RadialGradientPaint
@ConstructorProperties({"centerPoint","radius","focusPoint","fractions","colors","cycleMethod","colorSpace","transform"}) public RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform) RadialGradientPaint.- Параметры:
-
center— центральная точка круга, задающего градиент, в пользовательском пространстве. Последний цвет градиента сопоставляется с окружностью этого круга. -
radius— радиус круга, задающего границы цветового градиента -
focus— точка в пользовательском пространстве, с которой сопоставляется первый цвет -
fractions— числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента -
colors— массив цветов, используемых в градиенте. Первый цвет используется в фокусной точке, последний — по окружности круга. -
cycleMethod—NO_CYCLE,REFLECTилиREPEAT -
colorSpace— цветовое пространство для интерполяции:SRGBилиLINEAR_RGB -
gradientTransform— преобразование, применяемое к градиенту - Вызывает исключения:
-
NullPointerException— если одна из точек равна null, массивfractionsравен null, массивcolorsравен null,cycleMethodравен null,colorSpaceравен null илиgradientTransformравен null -
IllegalArgumentException— еслиradiusне является положительным числом, либоfractions.length != colors.length, либо размерcolorsменьше 2, либо значениеfractionsменьше 0.0 или больше 1.0, либо значенияfractionsне заданы в строго возрастающем порядке
RadialGradientPaint
public RadialGradientPaint(Rectangle2D gradientBounds, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
RadialGradientPaint с цветовым пространством SRGB по умолчанию. Круг градиента объекта RadialGradientPaint определяется заданной ограничивающей рамкой. Этот конструктор представляет собой более удобный способ записи следующего эквивалентного кода:
double gw = gradientBounds.getWidth();
double gh = gradientBounds.getHeight();
double cx = gradientBounds.getCenterX();
double cy = gradientBounds.getCenterY();
Point2D center = new Point2D.Double(cx, cy);
AffineTransform gradientTransform = new AffineTransform();
gradientTransform.translate(cx, cy);
gradientTransform.scale(gw / 2, gh / 2);
gradientTransform.translate(-cx, -cy);
RadialGradientPaint gp =
new RadialGradientPaint(center, 1.0f, center,
fractions, colors,
cycleMethod,
ColorSpaceType.SRGB,
gradientTransform);
- Параметры:
-
gradientBounds— ограничивающая рамка круга, задающего максимальную границу градиента, в пользовательском пространстве -
fractions— числа в диапазоне от 0.0 до 1.0, задающие распределение цветов вдоль градиента -
colors— массив цветов, используемых в градиенте. Первый цвет используется в фокусной точке, последний — по окружности круга. -
cycleMethod—NO_CYCLE,REFLECTилиREPEAT - Вызывает исключения:
-
NullPointerException— еслиgradientBoundsравен null, массивfractionsравен null, массивcolorsравен null илиcycleMethodравен null -
IllegalArgumentException— еслиgradientBoundsпуст, либоfractions.length != colors.length, либо размерcolorsменьше 2, либо значениеfractionsменьше 0.0 или больше 1.0, либо значенияfractionsне заданы в строго возрастающем порядке
Подробное описание методов
createContext
public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
PaintContext, используемый для создания кругового радиального цветового градиента. Сведения об обработке параметров со значением null см. в описании метода createContext.- Параметры:
-
cm— предпочтительныйColorModel, представляющий наиболее удобный для вызывающего кода формат получения пиксельных данных, илиnull, если предпочтительный формат отсутствует. -
deviceBounds— ограничивающая рамка графического примитива в пространстве устройства. -
userBounds— ограничивающая рамка графического примитива в пользовательском пространстве. -
transform—AffineTransformиз пользовательского пространства в пространство устройства. -
hints— набор подсказок, которые объект контекста может использовать для выбора способа отрисовки. - Возвращает:
- объект
PaintContextдля создания цветовых рисунков. - См. также:
getCenterPoint
public Point2D getCenterPoint()
- Возвращает:
- объект
Point2D, являющийся копией центральной точки
getFocusPoint
public Point2D getFocusPoint()
- Возвращает:
- объект
Point2D, являющийся копией фокусной точки
getRadius
public float getRadius()
- Возвращает:
- радиус круга, задающего радиальный градиент
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/RadialGradientPaint.html