Spec-Zone.ru › OpenJDK 17

Класс Polygon

java.lang.Object
java.awt.Polygon
Все реализованные интерфейсы:
Shape, Serializable
public class Polygon extends Object implements Shape, Serializable
Класс Polygon описывает замкнутую двумерную область в пространстве координат. Эта область ограничена произвольным количеством отрезков прямых, каждый из которых является стороной многоугольника. Внутренне многоугольник представляет собой список пар координат (x,y), где каждая пара определяет вершину многоугольника, а две последовательные пары являются концами отрезка, являющегося стороной многоугольника. Первая и последняя пары точек (x,y) соединены отрезком прямой, который замыкает многоугольник. Определение принадлежности точки к области многоугольника основано на правиле четности-нечетности. Смотрите 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.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

npoints

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

xpoints

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

ypoints

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

bounds

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

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

Polygon

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

Polygon

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

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

reset

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

invalidate

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

translate

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

addPoint

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

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

Параметры:
x - заданная координата X
y - заданная координата Y
Since:
1.0
См. также:
  • getBounds()
  • contains(java.awt.Point)

getBounds

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

getBoundingBox

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

contains

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

contains

public boolean contains(int x, int y)
Определяет, находятся ли указанные координаты внутри этого Polygon.
Параметры:
x - указанная координата X для проверки
y - указанная координата Y для проверки
Возвращает:
true , если этот Polygon содержит указанные координаты (x,y); false в противном случае.
Since:
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 в противном случае.
Since:
1.0
См. также:
  • contains(double, double)

getBounds2D

public Rectangle2D getBounds2D()
Возвращает прямоугольник с высокой точностью и большей точностью, чем метод getBounds, ограничивающий Shape. Обратите внимание, что нет гарантии, что возвращаемый 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:
  • Shape.getBounds()

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:
  • Area

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

содержит

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

© 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/Polygon.html

Spec-Zone.ru

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