Класс BasicStroke

Все реализуемые интерфейсы:
Stroke
public class BasicStroke
extends Object
implements Stroke

Класс BasicStroke определяет базовый набор атрибутов отрисовки для контуров графических примитивов, которые отрисовываются с помощью объекта Graphics2D, у которого атрибут Stroke установлен на этот объект BasicStroke. Атрибуты отрисовки, определённые BasicStroke, описывают форму метки, создаваемой пером, проведенным по контуру Shape, и декорации, применяемые к концам и соединениям сегментов пути Shape. Эти атрибуты отрисовки включают:

толщина
Толщина пера, измеряемая перпендикулярно траектории пера.
заглушки
Декорация, применяемая к концам незамкнутых подпутей и сегментов пунктира. Подпути, которые начинаются и заканчиваются в одной точке, все еще считаются незамкнутыми, если у них нет сегмента CLOSE. Смотрите SEG_CLOSE для получения дополнительной информации о сегменте CLOSE. Три различных декорации: CAP_BUTT, CAP_ROUND и CAP_SQUARE.
соединения
Декорация, применяемая в точке пересечения двух сегментов пути и в точке пересечения конечных точек подпути, который закрыт с помощью SEG_CLOSE. Три различных декорации: JOIN_BEVEL, JOIN_MITER и JOIN_ROUND.
предел сжатия
Предел для обрезки соединения, имеющего декорацию JOIN_MITER. Соединение обрезается, когда отношение длины сжатия к ширине штриха больше значения miterlimit. Длина сжатия — это диагональная длина сжатия, равная расстоянию между внутренней и внешней вершинами пересечения. Чем меньше угол, образованный двумя сегментами линии, тем длиннее длина сжатия и острее угол пересечения. Значение митерлимита по умолчанию 10.0f приводит к обрезке всех углов меньше 11 градусов. Обрезка митер преобразует декорацию соединения в фаску.
атрибуты пунктира
Определение того, как создать шаблон пунктира путём чередования непрозрачных и прозрачных участков.
Все атрибуты, определяющие измерения и расстояния, управляющие формой возвращаемого контура, измеряются в той же системе координат, что и исходный аргумент Shape. Когда объект Graphics2D использует объект Stroke для переопределения пути во время выполнения одного из его методов draw, геометрия предоставляется в исходной форме до применения атрибута трансформации Graphics2D. Следовательно, такие атрибуты, как ширина пера, интерпретируются в системе координат пространства пользователя объекта Graphics2D и подвержены масштабированию и сдвигу эффектов преобразования из пространства пользователя в пространство устройства в этом конкретном объекте Graphics2D. Например, ширина контура отрисованной фигуры определяется не только атрибутом ширины этого объекта BasicStroke, но и атрибутом преобразования объекта Graphics2D. Рассмотрим этот код:
// sets the Graphics2D object's Transform attribute
g2d.scale(10, 10);
// sets the Graphics2D object's Stroke attribute
g2d.setStroke(new BasicStroke(1.5f));
При условии, что к объекту Graphics2D не добавлены другие трансформации масштабирования, полученная линия будет примерно 15 пикселей в ширину. Как показывает пример кода, плавающая линия обеспечивает лучшую точность, особенно при использовании больших преобразований с объектом Graphics2D. Когда линия диагональная, точная ширина зависит от того, как отрисовка выбирает пиксели для заполнения при прослеживании теоретически расширенного контура. Выбор пикселей, которые нужно включить, зависит от атрибута сглаживания, поскольку pipeline сглаживания может выбрать цвет частично покрытых пикселей.

Дополнительную информацию о системе координат пространства пользователя и процессе отрисовки см. в комментариях к классу Graphics2D.

См. также:
Graphics2D

Поля

Модификатор и тип Поле Описание
static int CAP_BUTT

Заканчивает незамкнутые подпути и сегменты пунктира без дополнительной декорации.

static int CAP_ROUND

Заканчивает незамкнутые подпути и сегменты пунктира с закругленной декорацией, радиус которой равен половине ширины пера.

static int CAP_SQUARE

Заканчивает незамкнутые подпути и сегменты пунктира с квадратной проекцией, которая выходит за пределы конца сегмента на расстояние, равное половине ширины линии.

static int JOIN_BEVEL

Соединяет сегменты пути, соединяя внешние углы их широких контуров прямым отрезком.

static int JOIN_MITER

Соединяет сегменты пути, продлевая их внешние края до пересечения.

static int JOIN_ROUND

Соединяет сегменты пути, закругляя угол радиусом, равным половине ширины линии.

Конструкторы

Конструктор Описание
BasicStroke()

Создаёт новый объект BasicStroke с значениями по умолчанию для всех атрибутов.

BasicStroke​(float width)

Создаёт сплошной объект BasicStroke с заданной шириной линии и значениями по умолчанию для стиля заглушек и соединений.

BasicStroke​(float width, int cap, int join)

Создаёт сплошной объект BasicStroke с заданными атрибутами.

BasicStroke​(float width, int cap, int join, float miterlimit)

Создаёт сплошной объект BasicStroke с заданными атрибутами.

BasicStroke​(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase)

Создаёт новый объект BasicStroke с заданными атрибутами.

Методы

Модификатор и тип Метод Описание
Shape createStrokedShape​(Shape s)

Возвращает Shape , внутренняя часть которого определяет обведённый контур указанного Shape.

boolean equals​(Object obj)

Проверяет, равен ли указанный объект этому объекту BasicStroke , сначала проверив, является ли он объектом BasicStroke, а затем сравнив его атрибуты ширины, соединения, заглушки, предела сжатия, пунктира и фазы пунктира с атрибутами этого объекта BasicStroke.

float[] getDashArray()

Возвращает массив, представляющий длины сегментов пунктира.

float getDashPhase()

Возвращает текущую фазу пунктира.

int getEndCap()

Возвращает стиль заглушки.

int getLineJoin()

Возвращает стиль соединения.

float getLineWidth()

Возвращает ширину линии.

float getMiterLimit()

Возвращает предел сжатых соединений.

int hashCode()

Возвращает хэш-код для этого штриха.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Поля

JOIN_MITER

@Native
public static final int JOIN_MITER

Соединяет сегменты пути, продолжая их внешние края до встречи.

См. также:
Значения константных полей

JOIN_ROUND

@Native
public static final int JOIN_ROUND

Соединяет сегменты пути, сглаживая угол до радиуса, равного половине ширины линии.

См. также:
Значения константных полей

JOIN_BEVEL

@Native
public static final int JOIN_BEVEL

Соединяет сегменты пути, соединяя внешние углы их широких контуров прямым сегментом.

См. также:
Значения константных полей

CAP_BUTT

@Native
public static final int CAP_BUTT

Заканчивает незамкнутые подпути и сегменты штрихов без дополнительного оформления.

См. также:
Значения константных полей

CAP_ROUND

@Native
public static final int CAP_ROUND

Заканчивает незамкнутые подпути и сегменты штрихов скруглением, радиус которого равен половине ширины пера.

См. также:
Значения константных полей

CAP_SQUARE

@Native
public static final int CAP_SQUARE

Заканчивает незамкнутые подпути и сегменты штрихов квадратным выступом, который выходит за пределы конца сегмента на расстояние, равное половине ширины линии.

См. также:
Значения константных полей

Конструкторы

BasicStroke

@ConstructorProperties({"lineWidth","endCap","lineJoin","miterLimit","dashArray","dashPhase"})
public BasicStroke(float width,
                   int cap,
                   int join,
                   float miterlimit,
                   float[] dash,
                   float dash_phase)

Создает новый BasicStroke со значениями указанных атрибутов.

Параметры:
width - ширина этого BasicStroke. Ширина должна быть больше или равна 0.0f. Если ширина равна 0.0f, штрих отображается как самая тонкая возможная линия для целевого устройства и настройки подсказки сглаживания.
cap - декоративное завершение концов BasicStroke
join - декоративное оформление в точках соединения сегментов пути
miterlimit - ограничение для обрезки соединения скошенных углов. Ограничение скошенных углов должно быть больше или равно 1.0f.
dash - массив, представляющий шаблон пунктирной линии
dash_phase - смещение для начала шаблона пунктирной линии
Исключения:
IllegalArgumentException - если width отрицательно
IllegalArgumentException - если cap не равно CAP_BUTT, CAP_ROUND или CAP_SQUARE
IllegalArgumentException - если miterlimit меньше 1, а join равно JOIN_MITER
IllegalArgumentException - если join не равно JOIN_ROUND, JOIN_BEVEL или JOIN_MITER
IllegalArgumentException - если dash_phase отрицательно, а dash не равно null
IllegalArgumentException - если длина dash равна нулю
IllegalArgumentException - если длины отрезков штриховки все равны нулю.

BasicStroke

public BasicStroke(float width,
                   int cap,
                   int join,
                   float miterlimit)

Создает сплошной BasicStroke с указанными атрибутами.

Параметры:
width - ширина BasicStroke
cap - декоративное завершение концов BasicStroke
join - декоративное оформление в точках соединения сегментов пути
miterlimit - ограничение для обрезки соединения скошенных углов
Исключения:
IllegalArgumentException - если width отрицательно
IllegalArgumentException - если cap не равно CAP_BUTT, CAP_ROUND или CAP_SQUARE
IllegalArgumentException - если miterlimit меньше 1, а join равно JOIN_MITER
IllegalArgumentException - если join не равно JOIN_ROUND, JOIN_BEVEL или JOIN_MITER

BasicStroke

public BasicStroke(float width,
                   int cap,
                   int join)

Создает сплошной BasicStroke с указанными атрибутами. Параметр miterlimit не нужен в случаях, когда допускается значение по умолчанию или соединения линий не заданы как JOIN_MITER.

Параметры:
width - ширина BasicStroke
cap - декоративное завершение концов BasicStroke
join - декоративное оформление в точках соединения сегментов пути
Исключения:
IllegalArgumentException - если width отрицательно
IllegalArgumentException - если cap не равно CAP_BUTT, CAP_ROUND или CAP_SQUARE
IllegalArgumentException - если join не равно JOIN_ROUND, JOIN_BEVEL или JOIN_MITER

BasicStroke

public BasicStroke(float width)

Создает сплошной BasicStroke с указанной шириной линии и значениями по умолчанию для стилей оформления концов и соединений.

Параметры:
width - ширина BasicStroke
Исключения:
IllegalArgumentException - если width отрицательно

BasicStroke

public BasicStroke()

Создает новый BasicStroke со значениями по умолчанию для всех атрибутов. Значения по умолчанию: сплошная линия шириной 1.0, CAP_SQUARE, JOIN_MITER, предел скошенного угла 10.0.

Методы

createStrokedShape

public Shape createStrokedShape(Shape s)

Возвращает Shape , внутренность которого определяет начерченную границу заданной Shape.

Определено в:
createStrokedShape в интерфейсе Stroke
Параметры:
s - граница Shape для отрисовки
Возвращает:
внутреннюю границу начерченной границы.

getLineWidth

public float getLineWidth()

Возвращает ширину линии. Ширина линии представлена в пространстве пользователя, которое является стандартным пространством координат, используемым Java 2D. См. комментарии к классу Graphics2D для получения дополнительной информации о системе координат пользователя.

Возвращает:
ширина линии этого BasicStroke.
См. также:
Graphics2D

getEndCap

public int getEndCap()

Возвращает стиль окончания линии.

Возвращает:
стиль окончания линии этого BasicStroke как одно из статических int значений, определяющих возможные стили окончания линии.

getLineJoin

public int getLineJoin()

Возвращает стиль соединения линий.

Возвращает:
стиль соединения линий BasicStroke как одно из статических int значений, определяющих возможные стили соединения линий.

getMiterLimit

public float getMiterLimit()

Возвращает предел соединения скошенных углов.

Возвращает:
предел соединения скошенных углов BasicStroke.

getDashArray

public float[] getDashArray()

Возвращает массив, представляющий длины сегментов штриховки. Чередующиеся элементы массива представляют длины сегментов видимой и невидимой частей штриховки в пространстве пользователя. По мере перемещения пера вдоль контура Shape для отрисовки, суммируется расстояние, пройденное пером в пространстве пользователя. Это значение расстояния используется для индексации в массиве штриховки. Перо непрозрачно, когда текущее накопленное расстояние соответствует чётному элементу массива штриховки, и прозрачно в противном случае.

Возвращает:
массив штриховки.

getDashPhase

public float getDashPhase()

Возвращает текущую фазу штриховки. Фаза штриховки — это расстояние, указанное в координатах пользователя, которое представляет смещение в шаблоне штриховки. Другими словами, фаза штриховки определяет точку в шаблоне штриховки, которая будет соответствовать началу штриха.

Возвращает:
фазу штриховки как значение float.

hashCode

public int hashCode()

Возвращает хэш-код для этого штриха.

Переопределяет:
hashCode в классе Object
Возвращает:
хэш-код этого штриха.
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

equals

public boolean equals(Object obj)

Проверяет, равен ли указанный объект этому BasicStroke, сначала проверяя, является ли он BasicStroke, а затем сравнивая его ширину, соединение, оформление концов, предел скошенного угла, штрихи и фазу штриховки с атрибутами этого BasicStroke.

Переопределяет:
equals в классе Object
Параметры:
obj - указанный объект для сравнения с этим BasicStroke
Возвращает:
true , если ширина, соединение, оформление концов, предел скошенного угла, штрихи и фаза штриховки одинаковы для обоих объектов; false в противном случае.
См. также:
Object.hashCode(), HashMap

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/BasicStroke.html

Spec-Zone .ru
спецификации, руководства, описания, API