Класс 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. Соединение обрезается, когда отношение длины фаски к ширине штриха больше, чем значение 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. Если ширина равна 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- если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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/BasicStroke.html