Класс Path2D.Double
- Все реализуемые интерфейсы:
Shape, Serializable, Cloneable
- Внешний класс:
Path2D
public static non-sealed class Path2D.Double extends Path2D implements Serializable
Double определяет геометрический путь с координатами, хранящимися в формате чисел с плавающей точкой двойной точности.- С версии:
- 1.6
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе Path2D
Path2D.Double, Path2D.Float | Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
Path2D.Double |
Класс Double определяет геометрический путь с координатами, хранящимися в формате чисел с плавающей точкой двойной точности. |
static class |
Path2D.Float |
Класс Float определяет геометрический путь с координатами, хранящимися в формате чисел с плавающей точкой одинарной точности. |
Краткое описание полей
Поля, объявленные в классе Path2D
WIND_EVEN_ODD, WIND_NON_ZERO | Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
WIND_EVEN_ODD |
Правило чётно-нечётной заливки для определения внутренней области пути. |
static final int |
WIND_NON_ZERO |
Правило ненулевого индекса намотки для определения внутренней области пути. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Double() |
Создаёт новый пустой объект Path2D двойной точности с правилом намотки по умолчанию Path2D.WIND_NON_ZERO. |
Double |
Создаёт новый пустой объект Path2D двойной точности с указанным правилом намотки, которое определяет операции, требующие определения внутренней области пути. |
Double |
Создаёт новый пустой объект Path2D двойной точности с указанным правилом намотки и начальной ёмкостью для хранения сегментов пути. |
Double |
Создаёт новый объект Path2D двойной точности из произвольного объекта Shape. |
Double |
Создаёт новый объект Path2D двойной точности из произвольного объекта Shape, преобразованного объектом AffineTransform. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final void |
append |
Добавляет геометрию указанного объекта PathIterator к пути, возможно, соединяя новую геометрию с существующими сегментами пути отрезком. |
final Object |
clone() |
Создаёт новый объект того же класса, что и этот объект. |
final void |
curveTo |
Добавляет к пути криволинейный сегмент, заданный тремя новыми точками, рисуя кривую Безье, проходящую через текущие координаты и указанные координаты (x3,y3); указанные точки (x1,y1) и (x2,y2) используются в качестве управляющих точек кривой Безье. |
final Rectangle2D |
getBounds2D() |
Возвращает ограничивающий прямоугольник Shape с более высокой точностью и большей достоверностью, чем метод getBounds. |
final PathIterator |
getPathIterator |
Возвращает объект-итератор, который проходит по границе Shape и предоставляет доступ к геометрии контура Shape. |
final void |
lineTo |
Добавляет точку к пути, проводя прямую линию от текущих координат до новых указанных координат двойной точности. |
final void |
moveTo |
Добавляет точку к пути, перемещаясь к указанным координатам двойной точности. |
final void |
quadTo |
Добавляет к пути криволинейный сегмент, заданный двумя новыми точками, рисуя квадратичную кривую, проходящую через текущие координаты и указанные координаты (x2,y2); указанная точка (x1,y1) используется в качестве управляющей точки квадратичной параметрической кривой. |
final void |
transform |
Преобразует геометрию этого пути с помощью указанного AffineTransform. |
final void |
trimToSize() |
Уменьшает ёмкость этого экземпляра Path2D до его текущего размера. |
Методы, объявленные в классе Path2D
append, closePath, contains, contains, contains, contains, contains, contains, contains, contains, createTransformedShape, getBounds, getCurrentPoint, getPathIterator, getWindingRule, intersects, intersects, intersects, intersects, reset, setWindingRule | Модификатор и тип | Метод | Описание |
|---|---|---|
final void |
append |
Добавляет геометрию указанного объекта Shape к пути, возможно, соединяя новую геометрию с существующими сегментами пути отрезком. |
final void |
closePath() |
Замыкает текущий подпуть, проводя прямую линию обратно к координатам последнего moveTo. |
final boolean |
contains |
Проверяет, находятся ли указанные координаты внутри границы Shape согласно определению принадлежности внутренней области. |
final boolean |
contains |
Проверяет, полностью ли внутренняя область Shape содержит указанную прямоугольную область. |
static boolean |
contains |
Проверяет, находятся ли указанные координаты внутри замкнутой границы указанного PathIterator. |
static boolean |
contains |
Проверяет, находится ли указанная прямоугольная область целиком внутри замкнутой границы указанного PathIterator. |
static boolean |
contains |
Проверяет, находится ли указанная Point2D внутри замкнутой границы указанного PathIterator. |
static boolean |
contains |
Проверяет, находится ли указанная Rectangle2D целиком внутри замкнутой границы указанного PathIterator. |
final boolean |
contains |
Проверяет, находится ли указанная Point2D внутри границы Shape согласно определению принадлежности внутренней области. |
final boolean |
contains |
Проверяет, полностью ли внутренняя область Shape содержит указанную Rectangle2D. |
final Shape |
createTransformedShape |
Возвращает новый Shape, представляющий преобразованную версию этого Path2D. |
final Rectangle |
getBounds() |
Возвращает целочисленный объект Rectangle, который полностью охватывает Shape. |
final Point2D |
getCurrentPoint() |
Возвращает координаты, добавленные последними в конец пути, в виде объекта Point2D. |
final PathIterator |
getPathIterator |
Возвращает объект-итератор, который проходит по границе Shape и предоставляет доступ к упрощённому представлению геометрии контура Shape. |
final int |
getWindingRule() |
Возвращает правило намотки для заливки. |
final boolean |
intersects |
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанной прямоугольной области. |
static boolean |
intersects |
Проверяет, пересекается ли внутренняя область указанного PathIterator с внутренней областью указанного набора прямоугольных координат. |
static boolean |
intersects |
Проверяет, пересекается ли внутренняя область указанного PathIterator с внутренней областью указанного Rectangle2D. |
final boolean |
intersects |
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанного Rectangle2D. |
final void |
reset() |
Очищает путь. |
final void |
setWindingRule |
Устанавливает для этого пути указанное правило намотки. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени. |
Подробное описание конструкторов
Double
public Double()
Path2D двойной точности с правилом обхода по умолчанию Path2D.WIND_NON_ZERO.- С версии:
- 1.6
Double
public Double(int rule)
Path2D двойной точности с указанным правилом обхода, которое определяет операции, требующие задания внутренней области пути.- Параметры:
-
rule— правило обхода - Исключения:
-
IllegalArgumentException— еслиruleне равно ниPath2D.WIND_EVEN_ODD, ниPath2D.WIND_NON_ZERO - С версии:
- 1.6
- См. также:
Double
public Double(int rule, int initialCapacity)
Path2D двойной точности с указанным правилом обхода и заданной начальной емкостью для хранения сегментов пути. Это число является предварительной оценкой количества сегментов пути, но при необходимости объем хранилища увеличивается для сохранения всех сегментов, добавляемых в этот путь.- Параметры:
-
rule— правило обхода -
initialCapacity— оценочное количество сегментов пути - Исключения:
-
IllegalArgumentException— еслиruleне равно ниPath2D.WIND_EVEN_ODD, ниPath2D.WIND_NON_ZERO -
NegativeArraySizeException— еслиinitialCapacityотрицательно - С версии:
- 1.6
- См. также:
Double
public Double(Shape s)
Path2D двойной точности на основе произвольного объекта Shape. Вся исходная геометрия и правило обхода для этого пути берутся из указанного объекта Shape.- Параметры:
-
s— указанный объектShape - Исключения:
-
NullPointerException— еслиsравенnull - С версии:
- 1.6
Double
public Double(Shape s, AffineTransform at)
Path2D двойной точности на основе произвольного объекта Shape, преобразованного объектом AffineTransform. Вся исходная геометрия и правило обхода для этого пути берутся из указанного объекта Shape и преобразуются указанным объектом AffineTransform.- Параметры:
-
s— указанный объектShape -
at— указанный объектAffineTransform - Исключения:
-
NullPointerException— еслиsравенnull - С версии:
- 1.6
Подробное описание методов
trimToSize
public final void trimToSize()
Path2D- Определено в:
-
trimToSizeв классеPath2D - С версии:
- 10
moveTo
lineTo
quadTo
public final void quadTo(double x1, double y1, double x2, double y2)
(x2,y2), используя указанную точку (x1,y1) в качестве управляющей точки квадратичной параметрической кривой. Все координаты задаются с двойной точностью.curveTo
public final void curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
(x3,y3), используя указанные точки (x1,y1) и (x2,y2) в качестве управляющих точек кривой Безье. Все координаты задаются с двойной точностью.- Определено в:
-
curveToв классеPath2D - Параметры:
-
x1— координата X первой управляющей точки кривой Безье -
y1— координата Y первой управляющей точки кривой Безье -
x2— координата X второй управляющей точки кривой Безье -
y2— координата Y второй управляющей точки кривой Безье -
x3— координата X конечной точки -
y3— координата Y конечной точки - С версии:
- 1.6
append
public final void append(PathIterator pi, boolean connect)
PathIterator к пути, при необходимости соединяя новую геометрию с существующими сегментами пути отрезком. Если параметр connect равен true и путь не пуст, любой начальный moveTo в геометрии добавляемого объекта Shape преобразуется в сегмент lineTo. Если конечные координаты такого соединительного сегмента lineTo совпадают с конечными координатами текущего открытого подпути, этот сегмент пропускается как избыточный. Правило обхода указанного объекта Shape игнорируется, а добавленная геометрия подчиняется правилу обхода, заданному для этого пути.transform
public final void transform(AffineTransform at)
AffineTransform. Геометрия преобразуется на месте, что навсегда изменяет границу, определяемую этим объектом.getBounds2D
public final Rectangle2D getBounds2D()
Shape, чем метод getBounds. Обратите внимание, что нет гарантии, что возвращаемый объект Rectangle2D является наименьшим ограничивающим прямоугольником, охватывающим Shape; гарантируется лишь, что Shape целиком находится внутри указанного Rectangle2D. Ограничивающий прямоугольник, возвращаемый этим методом, обычно точнее того, который возвращает метод getBounds, и никогда не приводит к сбою из-за переполнения, поскольку возвращаемое значение может быть экземпляром Rectangle2D, использующего для хранения размеров значения двойной точности. Обратите внимание, что определение принадлежности внутренней области может приводить к ситуациям, когда точки на определяющем контуре shape не считаются принадлежащими возвращаемому объекту bounds, но только в тех случаях, когда эти точки также не считаются принадлежащими исходному shape.
Если point находится внутри shape согласно методу contains(point), то оно должно находиться и внутри возвращаемого объекта ограничивающих границ Rectangle2D согласно методу contains(point) объекта bounds. В частности:
shape.contains(p) влечет bounds.contains(p)
Если point не находится внутри shape, оно все еще может находиться внутри объекта bounds:
bounds.contains(p) не влечет shape.contains(p)
- Определено в:
-
getBounds2Dв интерфейсеShape - Возвращает:
- экземпляр
Rectangle2D, представляющий собой ограничивающий прямоугольникShapeс высокой точностью. - С версии:
- 1.6
- См. также:
getPathIterator
public final PathIterator getPathIterator(AffineTransform at)
Shape и предоставляет доступ к геометрии контура Shape. Если указан необязательный объект AffineTransform, координаты, возвращаемые при итерации, преобразуются соответствующим образом. Каждый вызов этого метода возвращает новый объект PathIterator, который обходит геометрию объекта Shape независимо от любых других одновременно используемых объектов PathIterator.
Рекомендуется, но не гарантируется, чтобы объекты, реализующие интерфейс Shape, изолировали выполняющиеся итерации от изменений геометрии исходного объекта, которые могут произойти во время таких итераций.
Итератор этого класса не является потокобезопасным: класс Path2D не гарантирует, что изменения геометрии этого объекта Path2D не повлияют на уже выполняющиеся итерации этой геометрии.
- Определено в:
-
getPathIteratorв интерфейсеShape - Параметры:
-
at— объектAffineTransform - Возвращает:
- новый объект
PathIterator, который проходит по границе этогоShapeи предоставляет доступ к геометрии контура этогоShape - С версии:
- 1.6
clone
public final Object clone()
- Определено в:
-
cloneв классеPath2D - Возвращает:
- клон этого экземпляра.
- Исключения:
-
OutOfMemoryError— если недостаточно памяти. - С версии:
- 1.6
- См. также:
© 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.