Класс RadialGradientPaint
- Все реализованные интерфейсы:
-
Paint,Transparency
public final class RadialGradientPaint extends MultipleGradientPaint
Пользователь должен указать окружность, управляющую градиентом, которая описывается центральной точкой и радиусом. Пользователь также может указать отдельную точку фокуса внутри этой окружности, которая контролирует расположение первого цвета градиента. По умолчанию фокус устанавливается в центр окружности.
Эта заливка сопоставит первый цвет градиента с точкой фокуса, а последний цвет — с периметром окружности, плавно интерполируя для любых промежуточных цветов, указанных пользователем. Любая линия, проведенная от точки фокуса к окружности, таким образом, охватывает все цвета градиента.
Указание точки фокуса вне радиуса окружности приведет к тому, что кольца градиента будут центрированы на точке, непосредственно внутри края окружности в направлении точки фокуса. Отрисовка будет внутренне использовать это измененное положение как если бы это была указанная точка фокуса.
Пользователь должен предоставить массив чисел с плавающей точкой, определяющий распределение цветов по градиенту. Эти значения должны быть в диапазоне от 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
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.awt.MultipleGradientPaint
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
Краткое описание полей
Поля, объявленные в интерфейсе java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RadialGradientPaint |
Создает RadialGradientPaint с методом повторения по умолчанию и цветовой моделью SRGB, используя центр как точку фокуса. |
RadialGradientPaint |
Создает RadialGradientPaint с цветовой моделью по умолчанию, используя центр как точку фокуса. |
RadialGradientPaint |
Создает RadialGradientPaint с цветовой моделью по умолчанию. |
RadialGradientPaint |
Создает RadialGradientPaint с методом повторения по умолчанию и цветовой моделью SRGB, используя центр как точку фокуса. |
RadialGradientPaint |
Создает RadialGradientPaint с цветовой моделью по умолчанию, используя центр как точку фокуса. |
RadialGradientPaint |
Создает RadialGradientPaint с цветовой моделью по умолчанию. |
RadialGradientPaint |
Создает RadialGradientPaint. |
RadialGradientPaint |
Создает RadialGradientPaint с цветовой моделью по умолчанию. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
PaintContext |
createContext |
Создает и возвращает PaintContext, используемый для генерации радиального цветового градиента. |
Point2D |
getCenterPoint() |
Возвращает копию центральной точки радиального градиента. |
Point2D |
getFocusPoint() |
Возвращает копию точки фокуса радиального градиента. |
float |
getRadius() |
Возвращает радиус окружности, определяющей радиальный градиент. |
Методы, объявленные в классе java.awt.MultipleGradientPaint
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency
Подробное описание конструкторов
RadialGradientPaint
public RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors)
RadialGradientPaint с методом повторения по умолчанию и цветовым пространством NO_CYCLE, используя центр как точку фокуса.- Параметры:
-
cx- координата X в пространстве пользователя центра окружности, определяющей градиент. Последний цвет градиента отображается на периметре этой окружности. -
cy- координата Y в пространстве пользователя центра окружности, определяющей градиент. Последний цвет градиента отображается на периметре этой окружности. -
radius- радиус окружности, определяющий границы цветового градиента -
fractions- числа в диапазоне от 0.0 до 1.0, определяющие распределение цветов по градиенту -
colors- массив цветов для использования в градиенте. Первый цвет используется в точке фокуса, последний - по периметру окружности. - Исключения:
-
NullPointerException- если массивfractionsили массив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, используя центр как точку фокуса.- Параметры:
-
center- центральная точка окружности, определяющей градиент, в пространстве пользователя -
radius- радиус окружности, определяющий границы цветового градиента -
fractions- числа в диапазоне от 0.0 до 1.0, определяющие распределение цветов по градиенту -
colors- массив цветов для использования в градиенте. Первый цвет используется в точке фокуса, последний - по периметру окружности. - Исключения:
-
NullPointerException- если точкаcenterили массивfractionsили массив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или массивcolorsили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или массивfractionsили массивcolorsили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или массивcolorsили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, используемый для генерации радиального цветового градиента. См. описание метода createContext для обработки параметров null.- Параметры:
-
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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/RadialGradientPaint.html