Класс 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- еслиsnull
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
public int hashCode()
Возвращает хэш-код для этого штриха.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- хэш-код для этого штриха.
- См. также:
equals
public boolean equals(Object obj)
Проверяет, равен ли указанный объект этому
BasicStroke, сначала проверяя, является ли он BasicStroke, а затем сравнивая его ширину, соединение, тип окончания, предел скругления, тире и фазу тире с аналогичными атрибутами этого BasicStroke.- Overrides:
-
equalsв классеObject - Параметры:
-
obj- указанный объект для сравнения с этимBasicStroke - Возвращает:
-
trueесли ширина, соединение, тип окончания, предел скругления, тире и фаза тире одинаковы для обоих объектов;falseв противном случае. - См. также:
© 1993, 2021, 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/17/docs/api/java.desktop/java/awt/BasicStroke.html