Spec-Zone.ru › OpenJDK 27

Класс 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. Длина скоса — это диагональная длина скоса, то есть расстояние между внутренним и внешним углами пересечения. Чем меньше угол между двумя сегментами линии, тем длиннее скос и острее угол пересечения. Значение предела скоса по умолчанию, равное 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
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного времени.

Подробное описание полей

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 — предел обрезки соединения со скосом. Значение 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, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065, США.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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