Класс Path2D
- Все реализуемые интерфейсы:
-
Shape,Cloneable
- Прямые известные подклассы:
-
Path2D.Double,Path2D.Float
public abstract sealed class Path2D extends Object implements Shape, Cloneable permits Path2D.Double, Path2D.Float
Path2D предоставляет простую, но гибкую форму, представляющую произвольную геометрическую траекторию. Он может полностью представить любую траекторию, которую можно проитерировать с помощью интерфейса PathIterator, включая все типы сегментов и правила обхода, и он реализует все основные методы проверки попадания в область интерфейса Shape. Используйте Path2D.Float при работе с данными, которые могут быть представлены и использованы с плавающей точкой. Используйте Path2D.Double для данных, требующих точности или диапазона двойной точности.
Path2D предоставляет именно те возможности, которые необходимы для базового построения и управления геометрической траекторией и реализации вышеуказанных интерфейсов с минимальным дополнительным толкованием. Если требуется манипулировать внутренними областями замкнутых геометрических фигур, выходящих за рамки простой проверки попадания, то класс Area предоставляет дополнительные возможности, специально ориентированные на замкнутые фигуры. Хотя оба класса номинально реализуют интерфейс Shape, они различаются по назначению, и вместе они предоставляют два полезных представления геометрической фигуры, где Path2D в основном обрабатывает траекторию, образованную сегментами пути, а Area больше занимается интерпретацией и манипулированием замкнутыми областями 2D геометрического пространства.
Интерфейс PathIterator содержит более подробные описания типов сегментов, из которых состоит траектория, и правил обхода, которые контролируют, как определить, какие области находятся внутри или снаружи траектории.
- Диаграмма иерархии класса (запечатанного):
- С момента:
- 1.6
Краткое описание вложенных классов
| Modifier and Type | Class | Description |
|---|---|---|
static class |
Path2D.Double |
Класс Double определяет геометрическую траекторию с координатами, хранящимися в формате двойной точности с плавающей запятой. |
static class |
Path2D.Float |
Класс Float определяет геометрическую траекторию с координатами, хранящимися в формате одинарной точности с плавающей запятой. |
Краткое описание полей
| Modifier and Type | Field | Description |
|---|---|---|
static final int |
WIND_EVEN_ODD |
Правило заполнения "четно-нечетно" для определения внутренней части траектории. |
static final int |
WIND_NON_ZERO |
Правило заполнения "не равное нулю" для определения внутренней части траектории. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
abstract void |
append |
Добавляет геометрию указанного объекта PathIterator к траектории, возможно соединяя новую геометрию с существующими сегментами траектории с помощью отрезка прямой. |
final void |
append |
Добавляет геометрию указанного объекта Shape к траектории, возможно соединяя новую геометрию с существующими сегментами траектории с помощью отрезка прямой. |
abstract Object |
clone() |
Создает новый объект того же класса, что и этот объект. |
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. |
abstract void |
curveTo |
Добавляет криволинейный сегмент, определённый тремя новыми точками, к траектории, нарисовав кривую Безье, пересекающую как текущие координаты, так и указанные координаты (x3,y3), используя указанные точки (x1,y1) и (x2,y2) в качестве управляющих точек Безье. |
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. |
abstract void |
lineTo |
Добавляет точку к траектории, нарисовав прямую линию от текущих координат до новых заданных координат в формате двойной точности. |
abstract void |
moveTo |
Перемещает текущую позицию к заданным координатам в формате двойной точности. |
abstract void |
quadTo |
Добавляет криволинейный сегмент, определённый двумя новыми точками, к траектории, нарисовав квадратную кривую, пересекающую как текущие координаты, так и указанные координаты (x2,y2), используя указанную точку (x1,y1) в качестве управляющей точки квадратного параметрического интерполятора. |
final void |
reset() |
Сбрасывает траекторию в пустое состояние. |
final void |
setWindingRule |
Устанавливает правило заполнения для этой траектории на указанное значение. |
abstract void |
transform |
Преобразует геометрию этой траектории с использованием указанного AffineTransform. |
abstract void |
trimToSize() |
Уменьшает ёмкость этого экземпляра Path2D до его текущего размера. |
Методы, объявленные в классе java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе java.awt.Shape
getBounds2D, getPathIterator
Подробное описание полей
WIND_EVEN_ODD
public static final int WIND_EVEN_ODD
- С момента:
- 1.6
- См. также:
WIND_NON_ZERO
public static final int WIND_NON_ZERO
- С момента:
- 1.6
- См. также:
Подробное описание методов
moveTo
public abstract void moveTo(double x, double y)
- Параметры:
-
x- заданная координата X -
y- заданная координата Y - С момента:
- 1.6
lineTo
public abstract void lineTo(double x, double y)
- Параметры:
-
x- заданная координата X -
y- заданная координата Y - С момента:
- 1.6
quadTo
public abstract void quadTo(double x1, double y1, double x2, double y2)
(x2,y2), используя указанную точку (x1,y1) в качестве квадратичного параметрического контрольной точки. Все координаты заданы с двойной точностью.- Параметры:
-
x1- координата X квадратичной контрольной точки -
y1- координата Y квадратичной контрольной точки -
x2- координата X конечной точки -
y2- координата Y конечной точки - С момента:
- 1.6
curveTo
public abstract void curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
(x3,y3), используя указанные точки (x1,y1) и (x2,y2) в качестве контрольных точек Безье. Все координаты заданы с двойной точностью.- Параметры:
-
x1- координата X первой контрольной точки Безье -
y1- координата Y первой контрольной точки Безье -
x2- координата X второй контрольной точки Безье -
y2- координата Y второй контрольной точки Безье -
x3- координата X конечной точки -
y3- координата Y конечной точки - С момента:
- 1.6
closePath
public final void closePath()
moveTo. Если путь уже закрыт, этот метод не имеет эффекта.- С момента:
- 1.6
append
public final void append(Shape s, boolean connect)
Shape объекта к пути, возможно, соединяя новую геометрию с существующими сегментами пути отрезком прямой. Если параметр connect равен true и путь не пуст, то любой начальный moveTo в геометрии добавляемого Shape преобразуется в lineTo отрезок. Если координаты назначения такого соединяющего lineTo отрезка совпадают с координатами окончания текущей открытой подтраектории, отрезок опускается как излишний. Правило обхода указанного Shape игнорируется, и добавленная геометрия регулируется правилом обхода, заданным для этого пути.- Параметры:
-
s-Shape, чья геометрия добавляется к этому пути -
connect- булевое значение, контролирующее преобразование начальногоmoveToотрезка вlineToотрезок для соединения новой геометрии с существующим путём - С момента:
- 1.6
append
public abstract void append(PathIterator pi, boolean connect)
PathIterator к пути, возможно, соединяя новую геометрию с существующими сегментами пути отрезком прямой. Если параметр connect равен true и путь не пуст, то любой начальный moveTo в геометрии добавляемого Shape преобразуется в lineTo отрезок. Если координаты назначения такого соединяющего lineTo отрезка совпадают с координатами окончания текущей открытой подтраектории, отрезок опускается как излишний. Правило обхода указанного Shape игнорируется, и добавленная геометрия регулируется правилом обхода, заданным для этого пути.- Параметры:
-
pi-PathIterator, чья геометрия добавляется к этому пути -
connect- булевое значение, контролирующее преобразование начальногоmoveToотрезка вlineToотрезок для соединения новой геометрии с существующим путём - С момента:
- 1.6
getWindingRule
public final int getWindingRule()
- Возвращает:
- целое число, представляющее текущее правило обхода.
- С момента:
- 1.6
- См. также:
setWindingRule
public final void setWindingRule(int rule)
- Параметры:
-
rule- целое число, представляющее указанное правило обхода - Исключения:
-
IllegalArgumentException- еслиruleне равно ниWIND_EVEN_ODD, ниWIND_NON_ZERO - С момента:
- 1.6
- См. также:
getCurrentPoint
public final Point2D getCurrentPoint()
Point2D.- Возвращает:
- объект
Point2D, содержащий конечные координаты пути, илиnull, если в пути нет точек. - С момента:
- 1.6
reset
public final void reset()
- С момента:
- 1.6
transform
public abstract void transform(AffineTransform at)
AffineTransform. Геометрия преобразуется на месте, что изменяет границу, определённую этим объектом, постоянно.- Параметры:
-
at-AffineTransform, используемый для преобразования области - С момента:
- 1.6
createTransformedShape
public final Shape createTransformedShape(AffineTransform at)
Shape , представляющий преобразованную версию этого Path2D. Обратите внимание, что точный тип и точность координат возвращаемого значения не указаны для этого метода. Метод вернёт Shape, содержащий не меньше точности для преобразованной геометрии, чем в настоящее время поддерживает этот Path2D, но он также может содержать не больше точности. Если компромисс между точностью и размером хранилища в результате важен, то следует использовать конструкторы по умолчанию в подклассах Path2D.Float и Path2D.Double для явного выбора.- Параметры:
-
at-AffineTransform, используемый для преобразования новогоShape. - Возвращает:
- новый
Shape, преобразованный с помощью указанногоAffineTransform. - С момента:
- 1.6
getBounds
public final Rectangle getBounds()
Rectangle, которое полностью охватывает Shape. Обратите внимание, что нет гарантии, что возвращаемый Rectangle является наименьшей ограничивающей прямоугольником, охватывающей Shape, только то, что Shape полностью лежит внутри указанного Rectangle. Возвращаемый Rectangle также может не полностью охватить Shape, если Shape переполняет ограниченный диапазон целочисленного типа данных. Метод getBounds2D в целом возвращает более тесный ограничивающий прямоугольник благодаря большей гибкости в представлении. Обратите внимание, что определение принадлежности может привести к ситуациям, когда точки на определяющей границе shape могут не считаться содержащимися в возвращаемом bounds объекте, но только в тех случаях, когда эти точки также не считаются содержащимися в исходном shape.
Если point находится внутри shape в соответствии с contains(point) методом, то оно должно находиться внутри возвращаемого Rectangle объекта границ в соответствии с contains(point) методом bounds. Конкретно:
shape.contains(x,y) требует bounds.contains(x,y)
Если point не находится внутри shape, то оно все равно может быть содержится в bounds объекте:
bounds.contains(x,y) не подразумевает shape.contains(x,y)
- Specified by:
-
getBoundsв интерфейсеShape - Returns:
- целое число
Rectangle, которое полностью охватываетShape. - Since:
- 1.6
- See Also:
contains
public static boolean contains(PathIterator pi, double x, double y)
PathIterator. Этот метод предоставляет базовые средства для разработчиков, реализующих интерфейс Shape для поддержки метода Shape.contains(double, double).
- Parameters:
-
pi- указанныйPathIterator -
x- указанная координата X -
y- указанная координата Y - Returns:
-
trueесли указанные координаты находятся внутри указанногоPathIterator;falseв противном случае - Since:
- 1.6
contains
public static boolean contains(PathIterator pi, Point2D p)
Point2D внутри замкнутой границы указанного PathIterator. Этот метод предоставляет базовые средства для разработчиков, реализующих интерфейс Shape для поддержки метода Shape.contains(Point2D).
- Parameters:
-
pi- указанныйPathIterator -
p- указанныйPoint2D - Returns:
-
trueесли указанные координаты находятся внутри указанногоPathIterator;falseв противном случае - Since:
- 1.6
contains
public final boolean contains(double x, double y)
Shape, как описано в определении принадлежности.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
x- указанная координата X для проверки -
y- указанная координата Y для проверки - Returns:
-
trueесли указанные координаты находятся внутри границыShape;falseв противном случае. - Since:
- 1.6
contains
public final boolean contains(Point2D p)
Point2D внутри границы Shape, как описано в определении принадлежности.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
p- указанныйPoint2Dдля проверки - Returns:
-
trueесли указанныйPoint2Dнаходится внутри границыShape;falseв противном случае. - Since:
- 1.6
contains
public static boolean contains(PathIterator pi, double x, double y, double w, double h)
PathIterator. Этот метод предоставляет базовые средства для разработчиков, реализующих интерфейс Shape для поддержки метода Shape.contains(double, double, double, double).
Этот объект метода может консервативно возвращать false в тех случаях, когда указанная прямоугольная область пересекает отрезок пути, но этот отрезок не представляет границу между внутренней и внешней областью пути. Такие отрезки могут полностью находиться внутри пути, если они являются частью пути с правилом обхода WIND_NON_ZERO, или если отрезки повторно прослеживаются в обратном направлении, так что две группы отрезков компенсируют друг друга без каких-либо внешних областей между ними. Для определения того, представляют ли отрезки истинные границы внутренней части пути, потребовались бы обширные вычисления, вовлекая все отрезки пути и правило обхода, что выходит за рамки данной реализации.
- Parameters:
-
pi- указанныйPathIterator -
x- указанная координата X -
y- указанная координата Y -
w- ширина указанной прямоугольной области -
h- высота указанной прямоугольной области - Returns:
-
trueесли указанныйPathIteratorсодержит указанную прямоугольную область;falseв противном случае. - Since:
- 1.6
contains
public static boolean contains(PathIterator pi, Rectangle2D r)
Rectangle2D находится внутри замкнутой границы указанного PathIterator. Этот метод предоставляет базовые средства для разработчиков, реализующих интерфейс Shape для поддержки метода Shape.contains(Rectangle2D).
Этот метод может консервативно возвращать false в тех случаях, когда указанная прямоугольная область пересекает отрезок пути, но этот отрезок не представляет границу между внутренней и внешней областью пути. Такие отрезки могут полностью находиться внутри пути, если они являются частью пути с правилом обхода WIND_NON_ZERO, или если отрезки повторно прослеживаются в обратном направлении, так что две группы отрезков компенсируют друг друга без каких-либо внешних областей между ними. Для определения того, представляют ли отрезки истинные границы внутренней части пути, потребовались бы обширные вычисления, вовлекая все отрезки пути и правило обхода, что выходит за рамки данной реализации.
- Parameters:
-
pi- указанныйPathIterator -
r- указанныйRectangle2D - Returns:
-
trueесли указанныйPathIteratorсодержит указаннуюRectangle2D;falseв противном случае. - Since:
- 1.6
contains
public final boolean contains(double x, double y, double w, double h)
Shape содержит указанную прямоугольную область. Все координаты, лежащие внутри прямоугольной области, должны лежать внутри Shape для того, чтобы вся прямоугольная область считалась содержащейся внутри Shape. Метод Shape.contains() позволяет реализации Shape консервативно возвращать false при:
- методе
intersectвозвращаетtrueи - вычисления, определяющие, полностью ли
Shapeсодержит прямоугольную область, слишком сложны.
Shapes этот метод может возвращать false, даже если Shape содержит прямоугольную область. Класс Area выполняет более точные геометрические вычисления, чем большинство объектов Shape и поэтому может использоваться, если требуется более точный ответ. Этот метод объекта может консервативно возвращать false в тех случаях, когда указанная прямоугольная область пересекает сегмент пути, но этот сегмент не представляет границу между внутренней и внешней областями пути. Такие сегменты могут целиком находиться внутри внутренней области пути, если они являются частью пути с правилом обхода WIND_NON_ZERO, или если сегменты повторно прослеживаются в обратном направлении, так что два набора сегментов взаимно компенсируют друг друга без попадания внешней области между ними. Для определения того, представляют ли сегменты истинные границы внутренней области пути, потребовались бы обширные вычисления, включающие все сегменты пути и правило обхода, что выходит за рамки этой реализации.
- Определено в:
-
containsв интерфейсеShape - Параметры:
-
x- координата X левого верхнего угла указанной прямоугольной области -
y- координата Y левого верхнего угла указанной прямоугольной области -
w- ширина указанной прямоугольной области -
h- высота указанной прямоугольной области - Возвращает:
-
trueесли внутренняя областьShapeполностью содержит указанную прямоугольную область;falseв противном случае или еслиShapeсодержит прямоугольную область, и методintersectsвозвращаетtrue, и вычисления содержательности слишком дороги. - С:
- 1.6
- См. также:
contains
public final boolean contains(Rectangle2D r)
Shape содержит указанный Rectangle2D. Метод Shape.contains() позволяет реализации Shape консервативно возвращать false когда: - метод
intersectвозвращаетtrueи - вычисления, определяющие, полностью ли
ShapeсодержитRectangle2D, слишком сложны.
Shapes этот метод может возвращать false, даже если Shape содержит Rectangle2D. Класс Area выполняет более точные геометрические вычисления, чем большинство объектов Shape и поэтому может использоваться, если требуется более точный ответ. Этот метод объекта может консервативно возвращать false в тех случаях, когда указанная прямоугольная область пересекает сегмент пути, но этот сегмент не представляет границу между внутренней и внешней областями пути. Такие сегменты могут целиком находиться внутри внутренней области пути, если они являются частью пути с правилом обхода WIND_NON_ZERO, или если сегменты повторно прослеживаются в обратном направлении, так что два набора сегментов взаимно компенсируют друг друга без попадания внешней области между ними. Для определения того, представляют ли сегменты истинные границы внутренней области пути, потребовались бы обширные вычисления, включающие все сегменты пути и правило обхода, что выходит за рамки этой реализации.
- Определено в:
-
containsв интерфейсеShape - Параметры:
-
r- УказанныйRectangle2D - Возвращает:
-
trueесли внутренняя областьShapeполностью содержитRectangle2D;falseв противном случае или еслиShapeсодержитRectangle2Dи методintersectsвозвращаетtrueи вычисления содержательности слишком дороги. - С:
- 1.6
- См. также:
intersects
public static boolean intersects(PathIterator pi, double x, double y, double w, double h)
PathIterator и указанного набора прямоугольных координат. Этот метод предоставляет базовый механизм для разработчиков, реализующих интерфейс Shape, чтобы реализовать поддержку метода Shape.intersects(double, double, double, double).
Этот метод объекта может консервативно возвращать true в тех случаях, когда указанная прямоугольная область пересекает сегмент пути, но этот сегмент не представляет границу между внутренней и внешней областями пути. Такой случай может произойти, если некоторые наборы сегментов пути повторно прослеживаются в обратном направлении, так что два набора сегментов взаимно компенсируют друг друга без попадания внутренней области между ними. Для определения того, представляют ли сегменты истинные границы внутренней области пути, потребовались бы обширные вычисления, включающие все сегменты пути и правило обхода, что выходит за рамки этой реализации.
- Параметры:
-
pi- указанныйPathIterator -
x- указанная координата X -
y- указанная координата Y -
w- ширина указанных прямоугольных координат -
h- высота указанных прямоугольных координат - Возвращает:
-
trueесли указанныеPathIteratorи внутренние области указанного набора прямоугольных координат пересекаются;falseв противном случае. - С:
- 1.6
intersects
public static boolean intersects(PathIterator pi, Rectangle2D r)
PathIterator и указанного Rectangle2D. Этот метод предоставляет базовый механизм для разработчиков, реализующих интерфейс Shape, чтобы реализовать поддержку метода Shape.intersects(Rectangle2D).
Этот метод объекта может консервативно возвращать true в тех случаях, когда указанная прямоугольная область пересекает сегмент пути, но этот сегмент не представляет границу между внутренней и внешней областями пути. Такой случай может произойти, если некоторые наборы сегментов пути повторно прослеживаются в обратном направлении, так что два набора сегментов взаимно компенсируют друг друга без попадания внутренней области между ними. Для определения того, представляют ли сегменты истинные границы внутренней области пути, потребовались бы обширные вычисления, включающие все сегменты пути и правило обхода, что выходит за рамки этой реализации.
- Параметры:
-
pi- указанныйPathIterator -
r- указанныйRectangle2D - Возвращает:
-
trueесли указанныеPathIteratorи внутренние области указанногоRectangle2Dпересекаются;falseв противном случае. - С:
- 1.6
intersects
public final boolean intersects(double x, double y, double w, double h)
Shape с внутренней областью указанного прямоугольника. Прямоугольник считается пересекающим Shape , если любая точка содержится как во внутренней области Shape , так и в указанном прямоугольнике. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true , когда:
- существует высокая вероятность пересечения прямоугольника и
Shape, но - вычисления для точного определения этого пересечения являются чрезмерно дорогостоящими.
Shapes этот метод может вернуть true , даже если прямоугольник не пересекает Shape. Класс Area выполняет более точные вычисления геометрического пересечения, чем большинство объектов Shape и поэтому может быть использован, если требуется более точный ответ. Этот метод может консервативно вернуть true в тех случаях, когда указанный прямоугольник пересекает отрезок пути, но этот отрезок не представляет собой границу между внутренней и внешней областями пути. Такой случай может возникнуть, если некоторые наборы отрезков пути проходят по тому же пути в обратном направлении, таким образом, что два набора отрезков аннулируют друг друга без какой-либо внутренней области между ними. Определение того, представляют ли отрезки истинные границы внутренней области пути, потребовало бы обширных вычислений, вовлекая все отрезки пути и правило обхода, и, следовательно, выходит за рамки этой реализации.
- Specified by:
-
intersectsв интерфейсеShape - Parameters:
-
x- координата X левого верхнего угла указанного прямоугольника -
y- координата Y левого верхнего угла указанного прямоугольника -
w- ширина указанного прямоугольника -
h- высота указанного прямоугольника - Returns:
-
true, если внутренняя областьShapeи внутренняя область прямоугольника пересекаются или обе очень вероятно пересекаются, а вычисления пересечения слишком дорогостоящие;falseв противном случае. - Since:
- 1.6
- See Also:
intersects
public final boolean intersects(Rectangle2D r)
Shape с внутренней областью указанного Rectangle2D. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true , когда: - существует высокая вероятность пересечения
Rectangle2DиShape, но - вычисления для точного определения этого пересечения являются чрезмерно дорогостоящими.
Shapes этот метод может вернуть true , даже если Rectangle2D не пересекает Shape. Класс Area выполняет более точные вычисления геометрического пересечения, чем большинство объектов Shape и поэтому может быть использован, если требуется более точный ответ. Этот метод может консервативно вернуть true в тех случаях, когда указанный прямоугольник пересекает отрезок пути, но этот отрезок не представляет собой границу между внутренней и внешней областями пути. Такой случай может возникнуть, если некоторые наборы отрезков пути проходят по тому же пути в обратном направлении, таким образом, что два набора отрезков аннулируют друг друга без какой-либо внутренней области между ними. Определение того, представляют ли отрезки истинные границы внутренней области пути, потребовало бы обширных вычислений, вовлекая все отрезки пути и правило обхода, и, следовательно, выходит за рамки этой реализации.
- Specified by:
-
intersectsв интерфейсеShape - Parameters:
-
r- указанныйRectangle2D - Returns:
-
true, если внутренняя областьShapeи внутренняя область указанногоRectangle2Dпересекаются или обе очень вероятно пересекаются, а вычисления пересечения слишком дорогостоящие;falseв противном случае. - Since:
- 1.6
- See Also:
getPathIterator
public final PathIterator getPathIterator(AffineTransform at, double flatness)
Shape и предоставляет доступ к уплощённому представлению геометрии контура Shape. Итератор возвращает только типы точек SEG_MOVETO, SEG_LINETO и SEG_CLOSE.
Если указан необязательный AffineTransform , возвращаемые в итерации координаты преобразуются соответствующим образом.
Степень разбиения криволинейных отрезков контролируется параметром flatness , который задаёт максимальное расстояние, на которое любая точка на нераскладываемой преобразованной кривой может отклоняться от возвращаемых уплощенных отрезков пути. Обратите внимание, что ограничение точности уплощённого пути может быть установлено без уведомления, в результате чего очень малые параметры уплощения будут рассматриваться как бóльшие значения. Это ограничение, если оно есть, определяется конкретной реализацией, используемой.
Каждый вызов этого метода возвращает новый объект PathIterator , который проходит по геометрии объекта Shape независимо от других объектов PathIterator , используемых одновременно.
Рекомендуется, но не гарантируется, что объекты, реализующие интерфейс Shape , изолируют итерации, которые находятся в процессе, от любых изменений, которые могут произойти в геометрии исходного объекта во время таких итераций.
Итератор для этого класса не является многопоточно безопасным, что означает, что этот класс Path2D не гарантирует, что изменения в геометрии этого объекта Path2D не повлияют на любые итерации этой геометрии, которые уже находятся в процессе.
- Specified by:
-
getPathIteratorв интерфейсеShape - Parameters:
-
at- необязательноеAffineTransform, которое должно быть применено к координатам по мере их возвращения в итерации, илиnull, если желательны непрообразованные координаты -
flatness- максимальное расстояние, на которое отрезки прямых, используемые для приближения криволинейных отрезков, могут отклоняться от любой точки исходной кривой - Returns:
- новый
PathIterator, который независимо проходит по уплощенному представлению геометрииShape. - Since:
- 1.6
clone
public abstract Object clone()
- Overrides:
-
cloneв классеObject - Returns:
- клонированная копия этого экземпляра.
- Throws:
-
OutOfMemoryError- если памяти недостаточно. - Since:
- 1.6
- See Also:
trimToSize
public abstract void trimToSize()
- Since:
- 10
© 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.html