Класс Path2D
- Все реализуемые интерфейсы:
-
Shape,Cloneable
- Прямые известные подклассы:
-
Path2D.Double,Path2D.Float
public abstract class Path2D extends Object implements Shape, Cloneable
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, 2021, 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/17/docs/api/java.desktop/java/awt/geom/Path2D.html