Spec-Zone.ru › OpenJDK 21

Класс 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.

image showing the
 distance AB=BC, and AD=DE

Если градиент и преобразования отрисовки графики масштабируются равномерно, и пользователь установит фокус так, чтобы он совпал с центром круга, пропорции цветов градиента равны для любой линии, проведенной от центра. На следующем рисунке показаны расстояния AB, BC, AD и DE. Они все равны.

image showing the
 distance of AB, BC, AD, and DE are all equal

Обратите внимание, что могут возникнуть незначительные различия в расстояниях из-за дискретизации на уровне пикселя. Если метод цикла не указан, по умолчанию будет выбран 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);
 

Это изображение демонстрирует пример кода выше, с фокусом по центру для каждого из трех методов цикла:

image showing the
 output of the sameple code

Также можно указать точку фокуса, не совпадающую с центром, как в следующем коде:

     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);
 

Это изображение демонстрирует предыдущий пример кода, с нецентральной точкой фокуса для каждого из трех методов цикла:

image showing the
 output of the sample code

С:
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 с методом повторения по умолчанию и цветовой моделью NO_CYCLE, используя центр как точку фокуса.
RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создает RadialGradientPaint с цветовой моделью по умолчанию, используя центр как точку фокуса.
RadialGradientPaint(float cx, float cy, float radius, float fx, float fy, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создает RadialGradientPaint с цветовой моделью по умолчанию.
RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors)
Создает RadialGradientPaint с методом повторения по умолчанию и цветовой моделью NO_CYCLE, используя центр как точку фокуса.
RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создает RadialGradientPaint с цветовой моделью по умолчанию, используя центр как точку фокуса.
RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создает RadialGradientPaint с цветовой моделью по умолчанию.
RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
Создает RadialGradientPaint.
RadialGradientPaint(Rectangle2D gradientBounds, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
Создает RadialGradientPaint с цветовой моделью по умолчанию.

Краткое описание методов

Модификатор и тип Метод Описание
PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
Создаёт и возвращает PaintContext, используемый для создания радиального цветового градиента.
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 - если массив 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 с методом повторения по умолчанию и цветовым пространством по умолчанию, используя центр в качестве точки фокусировки.
Параметры:
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 с методом повторения по умолчанию и цветовым пространством по умолчанию, используя центр в качестве точки фокусировки.
Параметры:
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 с методом повторения по умолчанию и цветовым пространством по умолчанию, используя центр в качестве точки фокусировки.
Параметры:
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 с цветовым пространством по умолчанию.
Параметры:
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 с цветовым пространством по умолчанию.
Параметры:
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.
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:
  • Paint
  • PaintContext
  • ColorModel
  • Rectangle
  • Rectangle2D
  • AffineTransform
  • RenderingHints

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API