Класс RadialGradientPaint
- java.lang.Object
-
- java.awt.MultipleGradientPaint
-
- java.awt.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.
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
- См. также:
-
Paint,Graphics2D.setPaint(java.awt.Paint)
Вложенные классы
Вложенные классы/интерфейсы, унаследованные от класса java.awt.MultipleGradientPaint
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod Поля
Поля, унаследованные от интерфейса java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT Краткое описание конструкторов
| Конструктор и описание |
|---|
RadialGradientPaint(float cx,
float cy,
float radius,
float[] fractions,
Color[] colors) Создает |
RadialGradientPaint(float cx,
float cy,
float radius,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod) Создает |
RadialGradientPaint(float cx,
float cy,
float radius,
float fx,
float fy,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod) Создает |
RadialGradientPaint(Point2D center,
float radius,
float[] fractions,
Color[] colors) Создает |
RadialGradientPaint(Point2D center,
float radius,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod) Создает |
RadialGradientPaint(Point2D center,
float radius,
Point2D focus,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod) Создает |
RadialGradientPaint(Point2D center,
float radius,
Point2D focus,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod,
MultipleGradientPaint.ColorSpaceType colorSpace,
AffineTransform gradientTransform) Создает |
RadialGradientPaint(Rectangle2D gradientBounds,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod) Создаёт |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
PaintContext |
createContext(ColorModel cm,
Rectangle deviceBounds,
Rectangle2D userBounds,
AffineTransform transform,
RenderingHints hints) Создаёт и возвращает |
Point2D |
getCenterPoint() Возвращает копию центральной точки радиального градиента. |
Point2D |
getFocusPoint() Возвращает копию точки фокуса радиального градиента. |
float |
getRadius() Возвращает радиус круга, определяющего радиальный градиент. |
Методы, унаследованные от класса java.awt.MultipleGradientPaint
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
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(value={"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для генерации цветовых узоров.- См. также:
-
Paint,PaintContext,ColorModel,Rectangle,Rectangle2D,AffineTransform,RenderingHints
getCenterPoint
public Point2D getCenterPoint()
Возвращает копию центральной точки радиального градиента.
- Возвращает:
- объект
Point2D, который является копией центральной точки
getFocusPoint
public Point2D getFocusPoint()
Возвращает копию фокусной точки радиального градиента. Обратите внимание, что если фокусная точка, указанная при создании радиального градиента, находится за пределами радиуса круга, этот метод по-прежнему вернет исходную фокусную точку, даже если отрисовка может центрировать кольца цвета в другой точке, которая находится внутри радиуса.
- Возвращает:
- объект
Point2D, который является копией фокусной точки
getRadius
public float getRadius()
Возвращает радиус круга, определяющего радиальный градиент.
- Возвращает:
- радиус круга, определяющего радиальный градиент
© 1993, 2020, 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.