Класс Path2D.Double
- Все реализованные интерфейсы:
-
Shape,Serializable,Cloneable
- Вложенный класс:
Path2D
public static non-sealed class Path2D.Double extends Path2D implements Serializable
Double определяет геометрическую траекторию с координатами, хранящимися в числах с плавающей запятой двойной точности.- С тех пор:
- 1.6
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.awt.geom.Path2D
Path2D.Double, Path2D.Float
Краткое описание полей
Поля, объявленные в классе java.awt.geom.Path2D
WIND_EVEN_ODD, WIND_NON_ZERO
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Double() |
Создаёт новый пустой объект double precision Path2D с правилом обхода по умолчанию Path2D.WIND_NON_ZERO. |
Double |
Создаёт новый пустой объект double precision Path2D с указанным правилом обхода для управления операциями, требующими определения внутренней части траектории. |
Double |
Создаёт новый пустой объект double precision Path2D с указанным правилом обхода и указанной начальной ёмкостью для хранения отрезков траектории. |
Double |
Создаёт новый объект double precision Path2D из произвольного объекта Shape. |
Double |
Создаёт новый объект double precision 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 до его текущего размера. |
Методы, объявленные в классе java.awt.geom.Path2D
append, closePath, contains, contains, contains, contains, contains, contains, contains, contains, createTransformedShape, getBounds, getCurrentPoint, getPathIterator, getWindingRule, intersects, intersects, intersects, intersects, reset, setWindingRule
Подробное описание конструкторов
Double
public Double()
Path2D с правилом обхода по умолчанию Path2D.WIND_NON_ZERO.- Since:
- 1.6
Double
public Double(int rule)
Path2D с указанным правилом обхода для управления операциями, требующими определения внутренней части пути.- Parameters:
-
rule- правило обхода - Throws:
-
IllegalArgumentException- еслиruleне равноPath2D.WIND_EVEN_ODDилиPath2D.WIND_NON_ZERO - Since:
- 1.6
- See Also:
Double
public Double(int rule, int initialCapacity)
Path2D с указанным правилом обхода и указанной начальной ёмкостью для хранения сегментов пути. Это значение является начальной оценкой количества сегментов пути, но хранилище увеличивается по мере необходимости для хранения добавляемых сегментов пути.- Parameters:
-
rule- правило обхода -
initialCapacity- оценка количества сегментов пути - Throws:
-
IllegalArgumentException- еслиruleне равноPath2D.WIND_EVEN_ODDилиPath2D.WIND_NON_ZERO -
NegativeArraySizeException- еслиinitialCapacityотрицательно - Since:
- 1.6
- See Also:
Double
public Double(Shape s)
Path2D из произвольного объекта Shape. Вся начальная геометрия и правило обхода для этого пути берутся из указанного объекта Shape.- Parameters:
-
s- указанный объектShape - Throws:
-
NullPointerException- еслиsравенnull - Since:
- 1.6
Double
public Double(Shape s, AffineTransform at)
Path2D из произвольного объекта Shape, преобразованного с помощью объекта AffineTransform. Вся начальная геометрия и правило обхода для этого пути берутся из указанного объекта Shape и преобразуются с помощью указанного объекта AffineTransform.- Parameters:
-
s- указанный объектShape -
at- указанный объектAffineTransform - Throws:
-
NullPointerException- еслиsравенnull - Since:
- 1.6
Подробное описание методов
trimToSize
public final void trimToSize()
Path2D- Specified by:
-
trimToSizeв классеPath2D
moveTo
public final void moveTo(double x, double y)
- Specified by:
-
moveToв классеPath2D - Parameters:
-
x- указанная координата X -
y- указанная координата Y - Since:
- 1.6
lineTo
public final void lineTo(double x, double y)
- Specified by:
-
lineToв классеPath2D - Parameters:
-
x- указанная координата X -
y- указанная координата Y - Since:
- 1.6
quadTo
public final void quadTo(double x1, double y1, double x2, double y2)
(x2,y2), используя указанную точку (x1,y1) в качестве квадратичного параметрического контрольной точки. Все координаты задаются в двойной точности.- Specified by:
-
quadToв классеPath2D - Parameters:
-
x1- координата X контрольной точки квадратичной кривой -
y1- координата Y контрольной точки квадратичной кривой -
x2- координата X конечной точки -
y2- координата Y конечной точки - Since:
- 1.6
curveTo
public final void curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
(x3,y3), используя указанные точки (x1,y1) и (x2,y2) как контрольные точки Безье. Все координаты задаются в двойной точности.- Specified by:
-
curveToв классеPath2D - Parameters:
-
x1- координата X первой контрольной точки Безье -
y1- координата Y первой контрольной точки Безье -
x2- координата X второй контрольной точки Безье -
y2- координата Y второй контрольной точки Безье -
x3- координата X конечной точки -
y3- координата Y конечной точки - Since:
- 1.6
append
public final void append(PathIterator pi, boolean connect)
PathIterator в путь, возможно, соединяя новую геометрию с существующими сегментами пути прямой линией. Если параметр connect равен true и путь не пустой, то любой начальный moveTo в геометрии добавленного Shape преобразуется в сегмент lineTo. Если целевые координаты такого соединяющего lineTo сегмента совпадают с координатами окончания текущего подпути, то сегмент пропускается как избыточный. Правило обхода указанного Shape игнорируется, и добавленная геометрия управляется правилом обхода, заданным для этого пути.- Specified by:
-
appendв классеPath2D - Parameters:
-
pi-PathIterator, чья геометрия добавляется в этот путь -
connect- логическое значение, определяющее, преобразовать ли начальныйmoveToсегмент в сегментlineToдля соединения новой геометрии с существующим путём - Since:
- 1.6
transform
public final void transform(AffineTransform at)
AffineTransform. Геометрия преобразуется на месте, что приводит к постоянному изменению границы, определённой этим объектом.- Specified by:
-
transformв классеPath2D - Parameters:
-
at-AffineTransformдля преобразования области - Since:
- 1.6
getBounds2D
public final Rectangle2D getBounds2D()
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)
- Specified by:
-
getBounds2Dв интерфейсеShape - Returns:
- экземпляр
Rectangle2D, представляющий собой прямоугольник с высокой точностью дляShape. - Since:
- 1.6
- See Also:
getPathIterator
public final PathIterator getPathIterator(AffineTransform at)
Shape и предоставляет доступ к геометрии контура Shape. Если указан необязательный AffineTransform, координаты, возвращаемые в процессе итерации, преобразуются соответствующим образом. Каждый вызов этого метода возвращает новый объект PathIterator , который проходит по геометрии объекта Shape независимо от других объектов PathIterator , используемых одновременно.
Рекомендуется, но не гарантируется, что объекты, реализующие интерфейс Shape , изолируют итерации, которые находятся в процессе, от любых изменений, которые могут произойти в геометрии исходного объекта во время таких итераций.
Итератор для этого класса не является многопоточно безопасным, что означает, что класс Path2D не гарантирует, что изменения в геометрии этого объекта Path2D не повлияют на какие-либо уже выполняющиеся итерации этой геометрии.
- Specified by:
-
getPathIteratorв интерфейсеShape - Parameters:
-
at- объектAffineTransform - Returns:
- новый
PathIterator, который проходит по границе этогоShapeи предоставляет доступ к геометрии контура этогоShape. - Since:
- 1.6
clone
public final Object clone()
- Specified by:
-
cloneв классеPath2D - Returns:
- клонированный экземпляр.
- Throws:
-
OutOfMemoryError- если памяти недостаточно. - Since:
- 1.6
- See Also:
© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/geom/Path2D.Double.html