Spec-Zone.ru › OpenJDK 21

Класс 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()
Возвращает ограничивающую рамку с высокой точностью и большей точностью, чем метод getBounds, для Shape.
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.
С момента:
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)
Конструирует и инициализирует многоугольник из указанных параметров.
Параметры:
xpoints - массив координат X
ypoints - массив координат Y
npoints - общее количество точек в многоугольнике
Исключения:
NegativeArraySizeException - если значение npoints отрицательное.
IndexOutOfBoundsException - если npoints больше длины xpoints или длины ypoints.
NullPointerException - если xpoints или ypoints null.
С момента:
1.0

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

reset

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

invalidate

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

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()
  • contains(java.awt.Point)

getBounds

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

getBoundingBox

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

contains

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

contains

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

inside

@Deprecated public boolean inside(int x, int y)
Устарело.
С версии JDK 1.1, заменено на contains(int, int).
Определяет, содержатся ли заданные координаты в этом многоугольнике.
Параметры:
x - указанная координата X для проверки
y - указанная координата Y для проверки
Возвращает:
true если многоугольник содержит указанные координаты (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)

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, 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

Spec-Zone.ru

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