Класс BasicStroke
java.lang.Object
java.awt.BasicStroke
- Все реализуемые интерфейсы:
Stroke
public class BasicStroke extends Object implements Stroke
Класс
BasicStroke определяет базовый набор атрибутов отрисовки контуров графических примитивов, которые отрисовываются объектом Graphics2D, у которого атрибут Stroke установлен в это значение BasicStroke. Атрибуты отрисовки, определяемые BasicStroke, описывают форму следа, оставляемого пером, движущимся вдоль контура Shape, и оформление концов и соединений сегментов пути Shape. К этим атрибутам отрисовки относятся: - ширина
- Ширина пера, измеряемая перпендикулярно траектории пера.
- окончания
- Оформление концов незамкнутых подпутей и штриховых сегментов. Подпути, начинающиеся и заканчивающиеся в одной точке, всё равно считаются незамкнутыми, если они не содержат сегмент CLOSE. Дополнительные сведения о сегменте CLOSE см. в разделе
SEG_CLOSE. Возможны три варианта оформления:CAP_BUTT,CAP_ROUNDиCAP_SQUARE. - соединения линий
- Оформление пересечения двух сегментов пути и пересечения конечных точек подпути, замкнутого с помощью
SEG_CLOSE. Возможны три варианта оформления:JOIN_BEVEL,JOIN_MITERиJOIN_ROUND. - предел скоса
- Предел обрезки соединения линии с оформлением JOIN_MITER. Соединение линии обрезается, если отношение длины скоса к ширине обводки превышает значение miterlimit. Длина скоса — это длина диагонали скоса, то есть расстояние между внутренним и внешним углами пересечения. Чем меньше угол между двумя сегментами линии, тем больше длина скоса и тем острее угол пересечения. Значение 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. Для диагональной линии её точная ширина зависит от того, какие пиксели конвейер отрисовки выбирает для заполнения при построении теоретического расширенного контура. Выбор заполняемых пикселей зависит от атрибута сглаживания, поскольку конвейер отрисовки со сглаживанием может закрашивать пиксели, покрытые частично. Дополнительные сведения о пользовательской системе координат и процессе отрисовки см. в комментариях к классу 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. Если width равен 0.0f, обводка отображается в виде максимально тонкой линии, возможной для целевого устройства и текущего параметра сглаживания. -
cap— оформление концов объектаBasicStroke -
join— оформление в местах соединения сегментов пути -
miterlimit— предел обрезки соединения со скосом. Значение 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, которую нужно обвести - Возвращает:
Shapeконтура обводки.- Исключения:
-
NullPointerException— еслиsимеет значениеnull
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
equals
public boolean equals(Object obj)
Проверяет, равен ли указанный объект этому объекту
BasicStroke: сначала проверяет, является ли он объектом BasicStroke, а затем сравнивает его атрибуты ширины, соединения, окончания, предела скоса, штриховки и фазы штриховки с атрибутами этого объекта BasicStroke.
© 1993, 2025, 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/25/docs/api/java.desktop/java/awt/BasicStroke.html