Класс 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.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
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() |
Возвращает хеш-код этой обводки. |
Методы, объявленные в классе 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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова 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. - См. также:
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.