Класс Path2D.Double
- java.lang.Object
-
- java.awt.geom.Path2D
-
- java.awt.geom.Path2D.Double
- Все реализуемые интерфейсы:
- Shape, Serializable, Cloneable
- Вложенный класс:
- Path2D
public static 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(int rule) Создаёт новый пустой объект с двойной точностью |
Double(int rule,
int initialCapacity) Создаёт новый пустой объект с двойной точностью |
Double(Shape s) Создаёт новый объект с двойной точностью |
Double(Shape s,
AffineTransform at) Создаёт новый объект с двойной точностью |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
append(PathIterator pi,
boolean connect) Добавляет геометрию указанного объекта |
Object |
clone() Создаёт новый объект того же класса, что и этот объект. |
void |
curveTo(double x1,
double y1,
double x2,
double y2,
double x3,
double y3) Добавляет криволинейный отрезок, определённый тремя новыми точками, к траектории, нарисовав кривую Безье, пересекающую как текущие координаты, так и заданные координаты |
Rectangle2D |
getBounds2D() Возвращает прямоугольник ограничивающей рамки |
PathIterator |
getPathIterator(AffineTransform at) Возвращает объект-итератор, который перемещается по границе |
void |
lineTo(double x,
double y) Добавляет точку к траектории, нарисовав прямую линию от текущих координат к новым заданным координатам с двойной точностью. |
void |
moveTo(double x,
double y) Добавляет точку к траектории, перейдя к заданным координатам с двойной точностью. |
void |
quadTo(double x1,
double y1,
double x2,
double y2) Добавляет криволинейный отрезок, определённый двумя новыми точками, к траектории, нарисовав квадратичную кривую, пересекающую как текущие координаты, так и указанные координаты |
void |
transform(AffineTransform at) Преобразует геометрию этой траектории с помощью указанного объекта |
Методы, унаследованные от класса 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- правило обхода - Since:
- 1.6
- See Also:
-
Path2D.WIND_EVEN_ODD,Path2D.WIND_NON_ZERO
Double
public Double(int rule,
int initialCapacity) Создаёт новый пустой объект двойной точности Path2D с указанным правилом обхода и указанной начальной ёмкостью для хранения сегментов пути. Это число является начальным приближением количества сегментов пути, но хранилище расширяется по мере необходимости, чтобы сохранить все добавляемые сегменты пути.
- Parameters:
-
rule- правило обхода -
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 - Since:
- 1.6
Double
public Double(Shape s,
AffineTransform at) Создаёт новый объект двойной точности Path2D из произвольного объекта Shape, преобразованного с помощью объекта AffineTransform. Вся начальная геометрия и правило обхода для этого пути берутся из указанного объекта Shape и преобразуются указанным объектом AffineTransform.
- Parameters:
-
s- указанный объектShape -
at- указанный объектAffineTransform - Since:
- 1.6
Методы
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()
Возвращает высокоточную и более точную прямоугольную область 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)
- 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()
Создаёт новый объект того же класса, что и этот объект.
- Указано в:
-
cloneв классеPath2D - Возвращает:
- клонированную копию этого экземпляра.
- Бросает:
-
OutOfMemoryError- если памяти недостаточно. - С:
- 1.6
- См. также:
Cloneable
© 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.