Класс 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. Длина сжатия — это диагональная длина сжатия, равная расстоянию между внутренней и внешней вершинами пересечения. Чем меньше угол, образованный двумя сегментами линии, тем длиннее длина сжатия и острее угол пересечения. Значение митерлимита по умолчанию 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. Когда линия диагональная, точная ширина зависит от того, как отрисовка выбирает пиксели для заполнения при прослеживании теоретически расширенного контура. Выбор пикселей, которые нужно включить, зависит от атрибута сглаживания, поскольку pipeline сглаживания может выбрать цвет частично покрытых пикселей.
Дополнительную информацию о системе координат пространства пользователя и процессе отрисовки см. в комментариях к классу Graphics2D.
- См. также:
Graphics2D
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static int | CAP_BUTT | Заканчивает незамкнутые подпути и сегменты пунктира без дополнительной декорации. |
static int | CAP_ROUND | Заканчивает незамкнутые подпути и сегменты пунктира с закругленной декорацией, радиус которой равен половине ширины пера. |
static int | CAP_SQUARE | Заканчивает незамкнутые подпути и сегменты пунктира с квадратной проекцией, которая выходит за пределы конца сегмента на расстояние, равное половине ширины линии. |
static int | JOIN_BEVEL | Соединяет сегменты пути, соединяя внешние углы их широких контуров прямым отрезком. |
static int | JOIN_MITER | Соединяет сегменты пути, продлевая их внешние края до пересечения. |
static int | JOIN_ROUND | Соединяет сегменты пути, закругляя угол радиусом, равным половине ширины линии. |
Конструкторы
| Конструктор | Описание |
|---|---|
BasicStroke() | Создаёт новый объект |
BasicStroke(float width) | Создаёт сплошной объект |
BasicStroke(float width,
int cap,
int join) | Создаёт сплошной объект |
BasicStroke(float width,
int cap,
int join,
float miterlimit) | Создаёт сплошной объект |
BasicStroke(float width,
int cap,
int join,
float miterlimit,
float[] dash,
float dash_phase) | Создаёт новый объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
Shape | createStrokedShape(Shape s) | Возвращает |
boolean | equals(Object obj) | Проверяет, равен ли указанный объект этому объекту |
float[] | getDashArray() | Возвращает массив, представляющий длины сегментов пунктира. |
float | getDashPhase() | Возвращает текущую фазу пунктира. |
int | getEndCap() | Возвращает стиль заглушки. |
int | getLineJoin() | Возвращает стиль соединения. |
float | getLineWidth() | Возвращает ширину линии. |
float | getMiterLimit() | Возвращает предел сжатых соединений. |
int | hashCode() | Возвращает хэш-код для этого штриха. |
Методы, объявленные в классе java.lang.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. Если ширина равна 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для отрисовки - Возвращает:
- внутреннюю границу начерченной границы.
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(java.lang.Object)
equals
public boolean equals(Object obj)
Проверяет, равен ли указанный объект этому BasicStroke, сначала проверяя, является ли он BasicStroke, а затем сравнивая его ширину, соединение, оформление концов, предел скошенного угла, штрихи и фазу штриховки с атрибутами этого BasicStroke.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- указанный объект для сравнения с этимBasicStroke - Возвращает:
-
true, если ширина, соединение, оформление концов, предел скошенного угла, штрихи и фаза штриховки одинаковы для обоих объектов;falseв противном случае. - См. также:
-
Object.hashCode(),HashMap
© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/BasicStroke.html