Spec-Zone.ru › OpenJDK 27

Класс Polygon

java.lang.Object
java.awt.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
См. также:
  • Shape
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
protected Rectangle bounds
Границы этого Polygon.
int npoints
Общее количество точек.
int[] xpoints
Массив координат X.
int[] ypoints
Массив координат Y.

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

Конструктор Описание
Polygon()
Создаёт пустой многоугольник.
Polygon(int[] xpoints, int[] ypoints, int npoints)
Создаёт и инициализирует Polygon с указанными параметрами.

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

Модификатор и тип Метод Описание
void addPoint(int x, int y)
Добавляет указанные координаты в этот Polygon.
boolean contains(double x, double y)
Проверяет, находятся ли указанные координаты внутри границы Shape, согласно определению внутренней области.
boolean contains(double x, double y, double w, double h)
Проверяет, полностью ли внутренняя область Shape содержит указанную прямоугольную область.
boolean contains(int x, int y)
Определяет, находятся ли указанные координаты внутри этого Polygon.
boolean contains(Point2D p)
Проверяет, находится ли указанная Point2D внутри границы Shape, согласно определению внутренней области.
boolean contains(Rectangle2D r)
Проверяет, полностью ли внутренняя область Shape содержит указанную Rectangle2D.
boolean contains(Point p)
Определяет, находится ли указанная Point внутри этого Polygon.
Rectangle getBoundingBox()
Устарело.
Начиная с JDK версии 1.1 заменён на getBounds().
Rectangle getBounds()
Возвращает ограничивающий прямоугольник этого Polygon.
Rectangle2D getBounds2D()
Возвращает более точный ограничивающий прямоугольник Shape с высокой точностью по сравнению с методом getBounds.
PathIterator getPathIterator(AffineTransform at)
Возвращает объект-итератор, который проходит вдоль границы этого Polygon и предоставляет доступ к геометрии контура этого Polygon.
PathIterator getPathIterator(AffineTransform at, double flatness)
Возвращает объект-итератор, который проходит вдоль границы Shape и предоставляет доступ к геометрии контура Shape.
boolean inside(int x, int y)
Устарело.
Начиная с JDK версии 1.1 заменён на contains(int, int).
boolean intersects(double x, double y, double w, double h)
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанной прямоугольной области.
boolean intersects(Rectangle2D r)
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанной Rectangle2D.
void invalidate()
Сбрасывает или очищает любые внутренне кэшированные данные, зависящие от координат вершин этого Polygon.
void reset()
Сбрасывает этот объект Polygon, создавая пустой многоугольник.
void translate(int deltaX, int deltaY)
Смещает вершины Polygon на deltaX вдоль оси x и на deltaY вдоль оси y.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание полей

npoints

public int npoints
Общее количество точек. Значение npoints представляет количество допустимых точек в этом Polygon и может быть меньше количества элементов в xpoints или ypoints. Это значение может быть равно 0.
С версии:
1.0
См. также:
  • addPoint(int, int)

xpoints

public int[] xpoints
Массив координат X. Количество элементов в этом массиве может превышать количество координат X в этом Polygon. Дополнительные элементы позволяют добавлять новые точки в этот Polygon без повторного создания массива. Значение npoints равно количеству допустимых точек в этом Polygon.
С версии:
1.0
См. также:
  • addPoint(int, int)

ypoints

public int[] ypoints
Массив координат Y. Количество элементов в этом массиве может превышать количество координат Y в этом Polygon. Дополнительные элементы позволяют добавлять новые точки в этот Polygon без повторного создания массива. Значение npoints равно количеству допустимых точек в этом Polygon.
С версии:
1.0
См. также:
  • addPoint(int, int)

bounds

protected Rectangle bounds
Границы этого Polygon. Это значение может быть равно null.
С версии:
1.0
См. также:
  • getBoundingBox()
  • getBounds()

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

Polygon

public Polygon()
Создает пустой многоугольник.
С версии:
1.0

Polygon

public Polygon(int[] xpoints, int[] ypoints, int npoints)
Создает и инициализирует Polygon с использованием указанных параметров.
Параметры:
xpoints — массив координат X
ypoints — массив координат Y
npoints — общее количество точек в Polygon
Исключения:
NegativeArraySizeException — если значение npoints отрицательно.
IndexOutOfBoundsException — если npoints больше длины xpoints или длины ypoints.
NullPointerException — если xpoints или ypoints равно null.
С версии:
1.0

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

reset

public void reset()
Сбрасывает этот объект Polygon до состояния пустого многоугольника. Массивы координат и содержащиеся в них данные остаются без изменений, однако количество точек сбрасывается до нуля, чтобы пометить данные старых вершин как недействительные и начать накопление новых данных вершин с начала. Все внутренне кэшированные данные, относящиеся к старым вершинам, отбрасываются. Обратите внимание: поскольку массивы координат, существовавшие до сброса, используются повторно, создание нового пустого Polygon может быть эффективнее с точки зрения использования памяти, чем сброс текущего, если количество вершин в новых данных многоугольника значительно меньше количества вершин в данных до сброса.
С версии:
1.4
См. также:
  • invalidate()

invalidate

public void invalidate()
Аннулирует или очищает любые внутренне кэшированные данные, зависящие от координат вершин этого Polygon. Этот метод следует вызывать после непосредственного изменения координат в массивах xpoints или ypoints, чтобы избежать несогласованных результатов методов, таких как getBounds или contains, которые могут кэшировать данные предыдущих вычислений, связанных с координатами вершин.
С версии:
1.4
См. также:
  • getBounds()

translate

public void translate(int deltaX, int deltaY)
Смещает вершины Polygon на deltaX вдоль оси x и на deltaY вдоль оси y.
Параметры:
deltaX — величина смещения вдоль оси X
deltaY — величина смещения вдоль оси Y
С версии:
1.1

addPoint

public void addPoint(int x, int y)
Добавляет указанные координаты в конец этого Polygon.

Если операция, вычисляющая ограничивающий прямоугольник этого Polygon, уже выполнялась, например getBounds или contains, этот метод обновляет ограничивающий прямоугольник.

Параметры:
x — указанная координата X
y — указанная координата Y
С версии:
1.0
См. также:
  • getBounds()
  • contains(Point)

getBounds

public Rectangle getBounds()
Возвращает ограничивающий прямоугольник этого Polygon. Ограничивающий прямоугольник — это наименьший Rectangle, стороны которого параллельны осям x и y координатного пространства и который полностью содержит Polygon.
Определен в:
getBounds в интерфейсе Shape
Возвращает:
объект Rectangle, задающий границы этого Polygon.
С версии:
1.1
См. также:
  • Shape.getBounds2D()

getBoundingBox

@Deprecated public Rectangle getBoundingBox()
Устарел.
Начиная с JDK версии 1.1 заменен методом getBounds().
Возвращает границы этого Polygon.
Возвращает:
границы этого Polygon.
С версии:
1.0

contains

public boolean contains(Point p)
Определяет, находится ли указанный Point внутри этого Polygon.
Параметры:
p — проверяемый Point
Возвращает:
true, если Polygon содержит Point; в противном случае — false.
С версии:
1.0
См. также:
  • contains(double, double)

contains

public boolean contains(int x, int y)
Определяет, находятся ли указанные координаты внутри этого Polygon.
Параметры:
x — проверяемая координата X
y — проверяемая координата Y
Возвращает:
true, если этот Polygon содержит указанные координаты (x,y); в противном случае — false.
С версии:
1.1
См. также:
  • contains(double, double)

inside

@Deprecated public boolean inside(int x, int y)
Устарел.
Начиная с JDK версии 1.1 заменен методом contains(int, int).
Определяет, содержатся ли указанные координаты в этом Polygon.
Параметры:
x — проверяемая координата X
y — проверяемая координата Y
Возвращает:
true, если этот Polygon содержит указанные координаты (x,y); в противном случае — false.
С версии:
1.0
См. также:
  • contains(double, double)

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)

Определен в:
getBounds2D в интерфейсе Shape
Возвращает:
экземпляр Rectangle2D, представляющий собой ограничивающий прямоугольник Shape с высокой точностью.
С версии:
1.2
См. также:
  • Shape.getBounds()

contains

public boolean contains(double x, double y)
Проверяет, находятся ли указанные координаты внутри границы Shape согласно определению внутренней области.
Определен в:
contains в интерфейсе Shape
Параметры:
x — проверяемая координата X
y — проверяемая координата Y
Возвращает:
true, если указанные координаты находятся внутри границы Shape; в противном случае — false.
С версии:
1.2

contains

public boolean contains(Point2D p)
Проверяет, находится ли указанная точка Point2D внутри границы Shape согласно определению внутренней области.
Определен в:
contains в интерфейсе Shape
Параметры:
p — проверяемый Point2D
Возвращает:
true, если указанная точка Point2D находится внутри границы Shape; в противном случае — false.
С версии:
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, и поэтому может использоваться, если требуется более точный результат.
Определен в:
intersects в интерфейсе Shape
Параметры:
x — координата X верхнего левого угла указанной прямоугольной области
y — координата Y верхнего левого угла указанной прямоугольной области
w — ширина указанной прямоугольной области
h — высота указанной прямоугольной области
Возвращает:
true, если внутренняя область Shape и внутренняя область прямоугольной области пересекаются либо с высокой вероятностью пересекаются, а вычисление пересечения потребовало бы чрезмерных затрат; в противном случае — false.
С версии:
1.2
См. также:
  • Area

intersects

public boolean intersects(Rectangle2D r)
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанного Rectangle2D. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true в следующих случаях:
  • существует высокая вероятность пересечения Rectangle2D и Shape, но
  • точное определение этого пересечения требует непомерно больших вычислительных затрат.
Это означает, что для некоторых Shapes этот метод может вернуть true, даже если Rectangle2D не пересекается с Shape. Класс Area выполняет более точные вычисления геометрического пересечения, чем большинство объектов Shape, и поэтому может использоваться, если требуется более точный результат.
Определен в:
intersects в интерфейсе Shape
Параметры:
r — указанный Rectangle2D
Возвращает:
true, если внутренняя область Shape и внутренняя область указанного Rectangle2D пересекаются либо с высокой вероятностью пересекаются, а вычисление пересечения потребовало бы чрезмерных затрат; в противном случае — false.
С версии:
1.2
См. также:
  • Shape.intersects(double, double, double, double)

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, и поэтому может использоваться, если требуется более точный результат.
Определен в:
contains в интерфейсе Shape
Параметры:
x — координата X верхнего левого угла указанной прямоугольной области
y — координата Y верхнего левого угла указанной прямоугольной области
w — ширина указанной прямоугольной области
h — высота указанной прямоугольной области
Возвращает:
true, если внутренняя область Shape полностью содержит указанную прямоугольную область; в противном случае — false либо, если Shape содержит прямоугольную область, а метод intersects возвращает true, и вычисление включения потребовало бы чрезмерных затрат.
С версии:
1.2
См. также:
  • Area
  • Shape.intersects(double, double, double, double)

contains

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
См. также:
  • Shape.contains(double, double, double, double)

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

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