Класс Polygon
- Все реализованные интерфейсы:
-
Shape,Serializable
public class Polygon extends Object implements Shape, Serializable
Polygon инкапсулирует описание замкнутой двухмерной области в пространстве координат. Эта область ограничена произвольным количеством отрезков прямых, каждый из которых является стороной многоугольника. Внутренне, многоугольник состоит из списка пар координат (x,y), где каждая пара определяет вершину многоугольника, а две последовательные пары являются концами отрезка, являющегося стороной многоугольника. Первая и последняя пары (x,y) точек соединены отрезком прямой, который замыкает многоугольник. Этот Polygon определяется правилом четности-нечетности. См. WIND_EVEN_ODD для определения правила четности-нечетности. Методы проверки попадания в область этого класса, которые включают методы contains, intersects и inside, используют определение внутренности, описанное в комментариях к классу Shape.- С:
- 1.0
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected Rectangle |
bounds |
Границы этого Polygon. |
int |
npoints |
Общее количество точек. |
int[] |
xpoints |
Массив координат X. |
int[] |
ypoints |
Массив координат Y. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Polygon() |
Создает пустой многоугольник. |
Polygon |
Конструирует и инициализирует Polygon по заданным параметрам. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addPoint |
Добавляет заданные координаты к этому Polygon. |
boolean |
contains |
Проверяет, находятся ли заданные координаты внутри границ Shape, как описано в определении попадания внутрь. |
boolean |
contains |
Проверяет, полностью ли внутренняя часть Shape содержит указанную прямоугольную область. |
boolean |
contains |
Определяет, находятся ли указанные координаты внутри этого Polygon. |
boolean |
contains |
Проверяет, находится ли указанная Point2D внутри границ Shape, как описано в определении попадания внутрь. |
boolean |
contains |
Проверяет, полностью ли внутренняя часть Shape содержит указанный Rectangle2D. |
boolean |
contains |
Определяет, находится ли указанная Point внутри этого Polygon. |
Rectangle |
getBoundingBox() |
Устарело. |
Rectangle |
getBounds() |
Получает область ограничивающей рамки этого Polygon. |
Rectangle2D |
getBounds2D() |
Возвращает ограничивающую рамку с высокой точностью и большей точностью, чем метод getBounds, для Shape. |
PathIterator |
getPathIterator |
Возвращает объект-итератор, который перебирает границу этого Polygon и предоставляет доступ к геометрии контура этого Polygon. |
PathIterator |
getPathIterator |
Возвращает объект-итератор, который перебирает границу Shape и предоставляет доступ к геометрии контура Shape. |
boolean |
inside |
Устарело. Начиная с версии JDK 1.1, заменено на contains(int, int). |
boolean |
intersects |
Проверяет, пересекается ли внутренняя часть Shape с внутренней частью указанной прямоугольной области. |
boolean |
intersects |
Проверяет, пересекается ли внутренняя часть Shape с внутренней частью указанного Rectangle2D. |
void |
invalidate() |
Делает недействительными или очищает любые кешированные данные, которые зависят от координат вершин этого Polygon. |
void |
reset() |
Сбрасывает этот объект Polygon до пустого многоугольника. |
void |
translate |
Переводит вершины Polygon на deltaX по оси x и на deltaY по оси y. |
Подробное описание полей
npoints
public int npoints
npoints представляет количество допустимых точек в этом Polygon и может быть меньше количества элементов в xpoints или ypoints. Это значение может быть равно 0.- С момента:
- 1.0
- См. также:
xpoints
public int[] xpoints
Polygon. Дополнительные элементы позволяют добавлять новые точки в это Polygon без повторного создания этого массива. Значение npoints равно количеству допустимых точек в этом Polygon.- С момента:
- 1.0
- См. также:
ypoints
public int[] ypoints
Polygon. Дополнительные элементы позволяют добавлять новые точки в это Polygon без повторного создания этого массива. Значение npoints равно количеству допустимых точек в этом Polygon.- С момента:
- 1.0
- См. также:
bounds
protected Rectangle bounds
Polygon. Это значение может быть null.- С момента:
- 1.0
- См. также:
Подробное описание конструкторов
Polygon
public Polygon()
- С момента:
- 1.0
Polygon
public Polygon(int[] xpoints, int[] ypoints, int npoints)
- Параметры:
-
xpoints- массив координат X -
ypoints- массив координат Y -
npoints- общее количество точек в многоугольнике - Исключения:
-
NegativeArraySizeException- если значениеnpointsотрицательное. -
IndexOutOfBoundsException- еслиnpointsбольше длиныxpointsили длиныypoints. -
NullPointerException- еслиxpointsилиypointsnull. - С момента:
- 1.0
Подробное описание методов
reset
public void reset()
- С момента:
- 1.4
- См. также:
invalidate
public void invalidate()
xpoints или ypoints для предотвращения несогласованных результатов от методов, таких как getBounds или contains, которые могут кэшировать данные из предыдущих вычислений, относящихся к координатам вершин.- С момента:
- 1.4
- См. также:
translate
public void translate(int deltaX, int deltaY)
deltaX по оси X и на deltaY по оси Y.- Параметры:
-
deltaX- величина смещения по оси X -
deltaY- величина смещения по оси Y - С момента:
- 1.1
addPoint
public void addPoint(int x, int y)
Если операция, вычисляющая рамки ограничивающего прямоугольника этого многоугольника, уже была выполнена, например, getBounds или contains, этот метод обновляет рамки ограничивающего прямоугольника.
- Параметры:
-
x- указанная координата X -
y- указанная координата Y - С момента:
- 1.0
- См. также:
getBounds
public Rectangle getBounds()
Rectangle, стороны которого параллельны осям x и y координатной системы, и который может полностью содержать этот многоугольник.- Определено в:
-
getBoundsв интерфейсеShape - Возвращает:
- объект
Rectangle, определяющий границы этого многоугольника. - С момента:
- 1.1
- См. также:
getBoundingBox
@Deprecated public Rectangle getBoundingBox()
getBounds().- Возвращает:
- границы этого многоугольника.
- С момента:
- 1.0
contains
public boolean contains(Point p)
Point внутри этого многоугольника.- Параметры:
-
p- заданнаяPointдля проверки - Возвращает:
-
trueесли многоугольник содержит заданную точку;falseв противном случае. - С момента:
- 1.0
- См. также:
contains
public boolean contains(int x, int y)
- Параметры:
-
x- указанная координата X для проверки -
y- указанная координата Y для проверки - Возвращает:
-
trueесли многоугольник содержит указанные координаты(x,y);falseв противном случае. - С момента:
- 1.1
- См. также:
inside
@Deprecated public boolean inside(int x, int y)
contains(int, int).- Параметры:
-
x- указанная координата X для проверки -
y- указанная координата Y для проверки - Возвращает:
-
trueесли многоугольник содержит указанные координаты(x,y);falseв противном случае. - С момента:
- 1.0
- См. также:
getBounds2D
public 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.2
- See Also:
contains
public boolean contains(double x, double y)
Shape, как описано в определении принадлежности.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
x- указанная координата X для проверки -
y- указанная координата Y для проверки - Returns:
-
trueесли указанные координаты находятся внутри границыShape;falseв противном случае. - Since:
- 1.2
contains
public boolean contains(Point2D p)
Point2D внутри границы Shape, как описано в определении принадлежности.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
p- указаннаяPoint2Dдля проверки - Returns:
-
trueесли указаннаяPoint2Dнаходится внутри границыShape;falseв противном случае. - Since:
- 1.2
intersects
public boolean intersects(double x, double y, double w, double h)
Shape с внутренней частью заданной прямоугольной области. Прямоугольная область считается пересекающей Shape , если любая точка содержится как во внутренней части Shape, так и в заданной прямоугольной области. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true когда:
- существует высокая вероятность пересечения прямоугольной области и
Shape, но - вычисления для точного определения этого пересечения слишком дорогостоящие.
Shapes этот метод может возвращать true даже если прямоугольная область не пересекает Shape. Класс Area выполняет более точные вычисления геометрического пересечения, чем большинство объектов Shape, и поэтому может использоваться, если требуется более точный ответ.- Specified by:
-
intersectsв интерфейсеShape - Parameters:
-
x- координата X верхнего левого угла заданной прямоугольной области -
y- координата Y верхнего левого угла заданной прямоугольной области -
w- ширина заданной прямоугольной области -
h- высота заданной прямоугольной области - Returns:
-
trueесли внутренняя частьShapeи внутренняя часть прямоугольной области пересекаются или оба сильно склонны к пересечению, а вычисления пересечения слишком дороги;falseв противном случае. - Since:
- 1.2
- See Also:
intersects
public boolean intersects(Rectangle2D r)
Shape с внутренней частью заданного Rectangle2D. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true когда: - существует высокая вероятность пересечения
Rectangle2DиShape, но - вычисления для точного определения этого пересечения слишком дорогостоящие.
Shapes этот метод может возвращать true даже если Rectangle2D не пересекает Shape. Класс Area выполняет более точные вычисления геометрического пересечения, чем большинство объектов Shape, и поэтому может использоваться, если требуется более точный ответ.- Specified by:
-
intersectsв интерфейсеShape - Parameters:
-
r- заданныйRectangle2D - Returns:
-
trueесли внутренняя частьShapeи внутренняя часть заданногоRectangle2Dпересекаются или оба сильно склонны к пересечению, а вычисления пересечения слишком дорогостоящие;falseв противном случае. - Since:
- 1.2
- See Also:
contains
public 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 и поэтому может использоваться, если требуется более точный ответ.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
x- координата X верхнего левого угла заданной прямоугольной области -
y- координата Y верхнего левого угла заданной прямоугольной области -
w- ширина заданной прямоугольной области -
h- высота заданной прямоугольной области - Returns:
-
trueесли внутренняя частьShapeполностью содержит заданную прямоугольную область;falseв противном случае или еслиShapeсодержит прямоугольную область и методintersectsвозвращаетtrue, а вычисления включения слишком дорогостоящие. - Since:
- 1.2
- See Also:
содержит
public boolean contains(Rectangle2D r)
Shape содержит указанный Rectangle2D. Метод Shape.contains() позволяет реализации Shape сохранительно возвращать false в случае: - метод
intersectвозвращаетtrueи - расчёты для определения того, полностью ли
ShapeсодержитRectangle2D, слишком дорогостоящи.
Shapes этот метод может возвращать false даже если Shape содержит Rectangle2D. Класс Area выполняет более точные геометрические вычисления, чем большинство объектов Shape и поэтому может быть использован, если требуется более точный ответ.- Определено в:
-
containsв интерфейсеShape - Параметры:
-
r- УказанныйRectangle2D - Возвращает:
-
trueесли внутренняя частьShapeполностью содержитRectangle2D;falseв противном случае или еслиShapeсодержитRectangle2Dи методintersectsвозвращаетtrueи вычисления включения слишком дорогостоящи. - С:
- 1.2
- См. также:
getPathIterator
public PathIterator getPathIterator(AffineTransform at)
Polygon и предоставляет доступ к геометрии контура этого Polygon. Можно указать необязательное AffineTransform, чтобы координаты, возвращаемые в процессе итерации, преобразовывались соответствующим образом.- Определено в:
-
getPathIteratorв интерфейсеShape - Параметры:
-
at- необязательноеAffineTransform, которое должно быть применено к координатам по мере их возвращения в процессе итерации, илиnullесли требуются непрообразованные координаты - Возвращает:
- объект
PathIterator, обеспечивающий доступ к геометрии этогоPolygon. - С:
- 1.2
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
Shape и предоставляет доступ к геометрии контура Shape. Итератор возвращает только типы точек SEG_MOVETO, SEG_LINETO и SEG_CLOSE. Поскольку многоугольники уже плоские, параметр flatness игнорируется. Можно указать необязательное AffineTransform, в таком случае координаты, возвращаемые в процессе итерации, преобразуются соответствующим образом.- Определено в:
-
getPathIteratorв интерфейсеShape - Параметры:
-
at- необязательноеAffineTransform, которое должно быть применено к координатам по мере их возвращения в процессе итерации, илиnullесли требуются непрообразованные координаты -
flatness- максимальное отклонение контрольных точек данной кривой от коллинеарности, прежде чем подчинённая кривая заменяется прямой линией, соединяющей конечные точки. Поскольку многоугольники уже плоские, параметрflatnessигнорируется. - Возвращает:
- объект
PathIterator, предоставляющий доступ к геометрииShapeобъекта. - С:
- 1.2
© 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/Polygon.html
getBounds().