Spec-Zone.ru › OpenJDK 21

Класс Path2D.Double

java.lang.Object
java.awt.geom.Path2D
java.awt.geom.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(int rule)
Создаёт новый пустой объект double precision Path2D с указанным правилом обхода для управления операциями, требующими определения внутренней части траектории.
Double(int rule, int initialCapacity)
Создаёт новый пустой объект double precision Path2D с указанным правилом обхода и указанной начальной ёмкостью для хранения отрезков траектории.
Double(Shape s)
Создаёт новый объект double precision Path2D из произвольного объекта Shape.
Double(Shape s, AffineTransform at)
Создаёт новый объект double precision Path2D из произвольного объекта Shape, преобразованного объектом AffineTransform.

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

Модификатор и тип Метод Описание
final void append(PathIterator pi, boolean connect)
Добавляет геометрию указанного объекта PathIterator к траектории, возможно, соединяя новую геометрию с существующими отрезками траектории отрезком прямой.
final Object clone()
Создаёт новый объект того же класса, что и этот объект.
final void curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
Добавляет криволинейный отрезок, определяемый тремя новыми точками, к траектории, нарисовав кривую Безье, пересекающую как текущие координаты, так и указанные координаты (x3,y3), используя указанные точки (x1,y1) и (x2,y2) в качестве контрольных точек Безье.
final Rectangle2D getBounds2D()
Возвращает рамки ограничивающей области Shape с большей точностью и точностью, чем метод getBounds.
final PathIterator getPathIterator(AffineTransform at)
Возвращает объект-итератор, который перемещается по границе Shape и предоставляет доступ к геометрии контура Shape.
final void lineTo(double x, double y)
Добавляет точку к траектории, нарисовав прямую линию от текущих координат до новых указанных координат, заданных с двойной точностью.
final void moveTo(double x, double y)
Добавляет точку к траектории, переместившись в указанные координаты, заданные с двойной точностью.
final void quadTo(double x1, double y1, double x2, double y2)
Добавляет криволинейный отрезок, определяемый двумя новыми точками, к траектории, нарисовав квадратичную кривую, пересекающую как текущие координаты, так и указанные координаты (x2,y2), используя указанную точку (x1,y1) в качестве квадратичной параметрической контрольной точки.
final void transform(AffineTransform at)
Преобразует геометрию этой траектории с помощью указанного объекта 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

Методы, объявленные в классе java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

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:
  • Path2D.WIND_EVEN_ODD
  • Path2D.WIND_NON_ZERO

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:
  • Path2D.WIND_EVEN_ODD
  • Path2D.WIND_NON_ZERO

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
Урезает ёмкость этого объекта 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:
  • Shape.getBounds()

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:
  • Cloneable

© 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

Spec-Zone.ru

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