Spec-Zone.ru › OpenJDK 25

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

См. также:
  • 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(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()
Возвращает хеш-код этой обводки.

Методы, объявленные в классе 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. Если 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.
См. также:
  • 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(Object)

equals

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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