Spec-Zone.ru › OpenJDK 8

Класс 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 с значениями по умолчанию для всех атрибутов.

BasicStroke(float width)

Создаёт сплошной объект BasicStroke с заданной шириной линии и значениями по умолчанию для стилей заглушек и соединений.

BasicStroke(float width, int cap, int join)

Создаёт сплошной объект BasicStroke с заданными атрибутами.

BasicStroke(float width, int cap, int join, float miterlimit)

Создаёт сплошной объект BasicStroke с заданными атрибутами.

BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase)

Создаёт новый объект BasicStroke с заданными атрибутами.

Краткое описание методов

Модификатор и тип Метод и описание
Shape createStrokedShape(Shape s)

Возвращает объект Shape, внутренняя часть которого определяет нанесённый контур заданного объекта Shape.

boolean equals(Object obj)

Проверяет, равен ли заданный объект этому объекту BasicStroke, сначала проверяя, является ли он объектом BasicStroke, а затем сравнивая его атрибуты ширины, соединения, заглушки, предела скругления, штриховки и фазы штриховки с атрибутами этого объекта BasicStroke.

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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API