Spec-Zone.ru › OpenJDK 17

Класс 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 с методом повторения по умолчанию и цветовой системой SRGB, используя центр в качестве точки фокуса.
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 с методом повторения по умолчанию и цветовой системой SRGB, используя центр в качестве точки фокуса.
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 с методом повторения по умолчанию 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.
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, 2021, 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/17/docs/api/java.desktop/java/awt/RadialGradientPaint.html

Spec-Zone.ru

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