Класс 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.
- См. также:
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(value={"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для штриховки - Возвращает:
- контур штрихованного контура.
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.