Класс BasicStroke
java.lang.Object
java.awt.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. Соединение линий обрезается, когда отношение длины сглаживания к ширине штриха больше значения предела сглаживания. Длина сглаживания — это диагональная длина сглаживания, которая представляет собой расстояние между внутренним углом и внешним углом пересечения. Чем меньше угол, образуемый двумя сегментами линии, тем длиннее длина сглаживания и острее угол пересечения. Значение предела сглаживания по умолчанию 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. Когда линия диагональная, точная ширина зависит от того, как процесс отрисовки выбирает пиксели для заполнения при прослеживании теоретически расширенного контура. Выбор пикселей, которые включить, зависит от атрибута антиалиасинга, поскольку процесс антиалиасинга может выбрать окраску частично перекрытых пикселей. Для получения дополнительной информации о системе координат пространства пользователя и процессе отрисовки см. комментарии к классу Graphics2D.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
CAP_BUTT |
Закрывает незамкнутые подпути и сегменты штриховки без добавления декораций. |
static final int |
CAP_ROUND |
Закрывает незамкнутые подпути и сегменты штриховки с закруглением, радиус которого равен половине ширины пера. |
static final int |
CAP_SQUARE |
Закрывает незамкнутые подпути и сегменты штриховки квадратным выступом, который выходит за пределы конца сегмента на расстояние, равное половине ширины линии. |
static final int |
JOIN_BEVEL |
Соединяет сегменты пути, соединяя внешние углы их широких контуров прямым сегментом. |
static final int |
JOIN_MITER |
Соединяет сегменты пути, продолжая их внешние края до пересечения. |
static final int |
JOIN_ROUND |
Соединяет сегменты пути, сглаживая угол радиусом, равным половине ширины линии. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
BasicStroke() |
Создаёт новый объект BasicStroke с настройками по умолчанию для всех атрибутов. |
BasicStroke |
Создаёт твёрдую линию BasicStroke с заданной шириной линии и значениями по умолчанию для стилей окончания и соединения. |
BasicStroke |
Создаёт твёрдую линию BasicStroke с заданными атрибутами. |
BasicStroke |
Создаёт твёрдую линию BasicStroke с заданными атрибутами. |
BasicStroke |
Создаёт новый объект BasicStroke с заданными атрибутами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Shape |
createStrokedShape |
Возвращает Shape , внутренняя часть которого определяет очертания штриха заданного объекта Shape. |
boolean |
equals |
Проверяет, равен ли указанный объект этому BasicStroke , сначала проверяя, является ли он BasicStroke , а затем сравнивая его ширину, соединение, окончание, предел сглаживания, штрихи и фазу штриховки с атрибутами этого BasicStroke. |
float[] |
getDashArray() |
Возвращает массив, представляющий длины сегментов штриховки. |
float |
getDashPhase() |
Возвращает текущую фазу штриховки. |
int |
getEndCap() |
Возвращает стиль окончания. |
int |
getLineJoin() |
Возвращает стиль соединения. |
float |
getLineWidth() |
Возвращает ширину линии. |
float |
getMiterLimit() |
Возвращает предел сглаживания соединений. |
int |
hashCode() |
Возвращает хэш-код для этого штриха. |
Подробное описание полей
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для нанесения штриха - Возвращает:
- контур нанесённого штрихом контура.
- Исключения:
-
NullPointerException- еслиsnull
getLineWidth
public float getLineWidth()
Возвращает ширину линии. Ширина линии представлена в пространстве пользователя, которое является пространством координат по умолчанию, используемым Java 2D. См. комментарии к классу
Graphics2D для получения дополнительной информации о системе координат пространства пользователя.- Возвращает:
- ширину линии этого
BasicStroke. - См. также:
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 - Возвращает:
- хешкод для этого штриха.
- См. также:
equals
public boolean equals(Object obj)
Проверяет, равен ли указанный объект этому
BasicStroke, сначала проверив, является ли он BasicStroke, а затем сравнив его атрибуты ширины, соединения, закругления, предельного значения скругления, тире и фазы тире с соответствующими атрибутами этого BasicStroke.- Overrides:
-
equalsв классеObject - Параметры:
-
obj- указанный объект для сравнения с этимBasicStroke - Возвращает:
-
trueесли ширина, тип соединения, тип закругления, предельное значение скругления, тип тире и фаза тире одинаковы для обоих объектов;falseв противном случае. - См. также:
© 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/BasicStroke.html