Класс 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
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.awt.MultipleGradientPaint
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
Краткое описание полей
Поля, объявленные в интерфейсе java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RadialGradientPaint |
Создает RadialGradientPaint с методом повторения по умолчанию и цветовой моделью NO_CYCLE, используя центр как точку фокуса. |
RadialGradientPaint |
Создает RadialGradientPaint с цветовой моделью по умолчанию, используя центр как точку фокуса. |
RadialGradientPaint |
Создает RadialGradientPaint с цветовой моделью по умолчанию. |
RadialGradientPaint |
Создает RadialGradientPaint с методом повторения по умолчанию и цветовой моделью NO_CYCLE, используя центр как точку фокуса. |
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 с методом повторения по умолчанию и цветовым пространством по умолчанию, используя центр в качестве точки фокусировки.- Параметры:
-
cx- координата X в пространстве пользователя центра окружности, определяющей градиент. Последний цвет градиента отображается на периметре этой окружности. -
cy- координата Y в пространстве пользователя центра окружности, определяющей градиент. Последний цвет градиента отображается на периметре этой окружности. -
radius- радиус окружности, определяющий пределы цветового градиента -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, используемых в градиенте. Первый цвет используется в точке фокуса, последний — по периметру окружности. - Исключения:
-
NullPointerException- если массивfractionsnull, или массивcolorsnull -
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 с методом повторения по умолчанию и цветовым пространством по умолчанию, используя центр в качестве точки фокусировки.- Параметры:
-
center- центральная точка, в пространстве пользователя, окружности, определяющей градиент -
radius- радиус окружности, определяющий пределы цветового градиента -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, используемых в градиенте. Первый цвет используется в точке фокуса, последний — по периметру окружности. - Исключения:
-
NullPointerException- если точкаcenternull, или массивfractionsnull, или массивcolorsnull -
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 с методом повторения по умолчанию и цветовым пространством по умолчанию, используя центр в качестве точки фокусировки.- Параметры:
-
cx- координата X в пространстве пользователя центра окружности, определяющей градиент. Последний цвет градиента отображается на периметре этой окружности. -
cy- координата Y в пространстве пользователя центра окружности, определяющей градиент. Последний цвет градиента отображается на периметре этой окружности. -
radius- радиус окружности, определяющий пределы цветового градиента -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, используемых в градиенте. Первый цвет используется в точке фокуса, последний — по периметру окружности. -
cycleMethod- метод цикла:NO_CYCLE,REFLECT, илиREPEAT - Исключения:
-
NullPointerException- если массивfractionsnull, или массивcolorsnull, илиcycleMethodnull -
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 с методом повторения по умолчанию и цветовым пространством по умолчанию, используя центр в качестве точки фокусировки.- Параметры:
-
center- центральная точка, в пространстве пользователя, окружности, определяющей градиент -
radius- радиус окружности, определяющий пределы цветового градиента -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, используемых в градиенте. Первый цвет используется в точке фокуса, последний — по периметру окружности. -
cycleMethod- метод цикла:NO_CYCLE,REFLECT, илиREPEAT - Исключения:
-
NullPointerException- если точкаcenternull, или массивfractionsnull, или массивcolorsnull, илиcycleMethodnull -
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 с цветовым пространством по умолчанию.- Параметры:
-
cx- координата X в пространстве пользователя центра окружности, определяющей градиент. Последний цвет градиента отображается на периметре этой окружности. -
cy- координата Y в пространстве пользователя центра окружности, определяющей градиент. Последний цвет градиента отображается на периметре этой окружности. -
radius- радиус окружности, определяющий пределы цветового градиента -
fx- координата X точки в пространстве пользователя, к которой сопоставляется первый цвет -
fy- координата Y точки в пространстве пользователя, к которой сопоставляется первый цвет -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, используемых в градиенте. Первый цвет используется в точке фокуса, последний — по периметру окружности. -
cycleMethod- метод цикла:NO_CYCLE,REFLECT, илиREPEAT - Исключения:
-
NullPointerException- если массивfractionsnull, или массивcolorsnull, илиcycleMethodnull -
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 с цветовым пространством по умолчанию.- Параметры:
-
center- центральная точка, в пространстве пользователя, окружности, определяющей градиент. Последний цвет градиента отображается на периметре этой окружности. -
radius- радиус окружности, определяющий пределы цветового градиента -
focus- точка в пространстве пользователя, к которой сопоставляется первый цвет -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, используемых в градиенте. Первый цвет используется в точке фокуса, последний — по периметру окружности. -
cycleMethod- метод цикла:NO_CYCLE,REFLECT, илиREPEAT - Исключения:
-
NullPointerException- если одна из точек null, или массивfractionsnull, или массивcolorsnull, илиcycleMethodnull -
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. - Parameters:
-
center- точка центра окружности, определяющей градиент в пространстве пользователя. Последний цвет градиента отображается на периметре этой окружности. -
radius- радиус окружности, определяющей область градиента цвета. -
focus- точка в пространстве пользователя, к которой сопоставляется первый цвет. -
fractions- значения от 0,0 до 1,0, определяющие распределение цветов вдоль градиента. -
colors- массив цветов для использования в градиенте. Первый цвет используется в точке фокуса, последний — на периметре окружности. -
cycleMethod-NO_CYCLE,REFLECT, илиREPEAT. -
colorSpace- цветовое пространство для интерполяции,SRGBилиLINEAR_RGB. -
gradientTransform- преобразование, применяемое к градиенту. - Throws:
-
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);
- Parameters:
-
gradientBounds- ограничивающая прямоугольник, в пространстве пользователя, окружности, определяющей наибольший предел градиента. -
fractions- значения от 0,0 до 1,0, определяющие распределение цветов вдоль градиента. -
colors- массив цветов для использования в градиенте. Первый цвет используется в точке фокуса, последний — на периметре окружности. -
cycleMethod-NO_CYCLE,REFLECT, илиREPEAT. - Throws:
-
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.- Parameters:
-
cm- предпочтительныйColorModel, представляющий наиболее удобный для вызывающей стороны формат для получения данных пикселей, илиnull, если предпочтения нет. -
deviceBounds- ограничивающая прямоугольник пространства устройства для отрисовываемого графического примитива. -
userBounds- ограничивающая прямоугольник пространства пользователя для отрисовываемого графического примитива. -
transform-AffineTransformот пространства пользователя в пространство устройства. -
hints- набор подсказок, который объект контекста может использовать для выбора между альтернативами отрисовки. - Returns:
PaintContextдля генерации узоров цвета.- See Also:
getCenterPoint
public Point2D getCenterPoint()
- Returns:
- объект
Point2D, являющийся копией центральной точки.
getFocusPoint
public Point2D getFocusPoint()
- Returns:
- объект
Point2D, являющийся копией точки фокуса.
getRadius
public float getRadius()
- Returns:
- радиус окружности, определяющей радиальный градиент.
© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/RadialGradientPaint.html