Spec-Zone.ru › OpenJDK 17

Класс Area

java.lang.Object
java.awt.geom.Area
Все реализованные интерфейсы:
Shape, Cloneable
public class Area extends Object implements Shape, Cloneable
Объект класса Area хранит и обрабатывает независимое от разрешения описание замкнутой области 2-мерного пространства. Объекты класса Area могут преобразовываться и выполнять различные операции геометрии конструктивных областей (CAG) при объединении с другими объектами Area. Операции CAG включают добавление области addition, вычитание subtraction, пересечение intersection и исключающее ИЛИ exclusive or. Примеры различных операций см. в документации связанных методов.

Класс Area реализует интерфейс Shape и обеспечивает полную поддержку всех его средств проверки попадания и итерации по траекториям, но объект Area более специфичен, чем обобщенная траектория по нескольким причинам:

  • Хранятся только замкнутые траектории и подтраектории. Объекты Area , созданные из незамкнутых траекторий, неявно закрываются во время построения, как если бы эти траектории были заполнены методом Graphics2D.fill.
  • Внутренние области отдельных хранимых подтраекторий все непустые и непересекающиеся. Траектории декомпонируются во время построения на отдельные компоненты, непересекающиеся части, пустые фрагменты траектории отбрасываются, а затем эти свойства непустоты и непересечения поддерживаются во всех последующих операциях CAG. Контуры разных подтраекторий могут касаться друг друга, но не пересекаться так, чтобы их области не перекрывались.
  • Геометрия траектории, описывающей контур объекта Area , похожа на траекторию, из которой она была создана только тем, что она описывает ту же замкнутую 2-мерную область, но может использовать совершенно разные типы и порядок сегментов траектории для этого.
Важные вопросы, которые не всегда очевидны при использовании объекта Area :
  • Создание объекта Area из незамкнутой (открытой) траектории Shape приводит к замкнутому контуру в объекте Area.
  • Создание объекта Area из области Shape , не охватывающей никакой области (даже при "закрытии"), приводит к пустому объекту Area. Типичный пример этой проблемы заключается в том, что создание объекта Area из линии будет пустым, так как линия не охватывает никакой области. Пустой объект Area не будет итерировать геометрию в своих объектах PathIterator.
  • Самопересекающаяся траектория Shape может быть разделена на две (или более) подтраектории, каждая из которых охватывает одну из непересекающихся частей исходной траектории.
  • Объект Area может занимать больше сегментов траектории для описания той же геометрии, даже когда исходный контур прост и очевиден. Анализ, который класс Area должен выполнить над траекторией, может не отражать те же понятия «простоты и очевидности», что и человек.
С:
1.2

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

Конструктор Описание
Area()
Конструктор по умолчанию, который создает пустую область.
Area(Shape s)
Класс Area создает геометрию области из указанного объекта Shape.

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

Модификатор и тип Метод Описание
void add(Area rhs)
Добавляет форму указанной Area к форме этого объекта Area.
Object clone()
Возвращает точную копию этого объекта Area.
boolean contains(double x, double y)
Проверяет, находятся ли указанные координаты внутри границы объекта Shape, как описано в определении принадлежности.
boolean contains(double x, double y, double w, double h)
Проверяет, полностью ли внутренняя область объекта Shape содержит указанную прямоугольную область.
boolean contains(Point2D p)
Проверяет, находится ли указанная точка Point2D внутри границы объекта Shape, как описано в определении принадлежности.
boolean contains(Rectangle2D r)
Проверяет, полностью ли внутренняя область объекта Shape содержит указанную область Rectangle2D.
Area createTransformedArea(AffineTransform t)
Создает новый объект Area , содержащий ту же геометрию, что и этот объект Area , преобразованный с помощью указанного преобразования AffineTransform.
boolean equals(Area other)
Проверяет, равны ли геометрии двух объектов Area.
void exclusiveOr(Area rhs)
Устанавливает форму этого объекта Area в виде объединенной области его текущей формы и формы указанной области Area минус их пересечение.
Rectangle getBounds()
Возвращает ограничивающий прямоугольник Rectangle, который полностью охватывает этот объект Area.
Rectangle2D getBounds2D()
Возвращает ограничивающий прямоугольник с высокой точностью Rectangle2D, который полностью охватывает этот объект Area.
PathIterator getPathIterator(AffineTransform at)
Создает объект PathIterator для контура этого объекта Area.
PathIterator getPathIterator(AffineTransform at, double flatness)
Создает объект PathIterator для сглаженного контура этого объекта Area.
void intersect(Area rhs)
Устанавливает форму этого объекта Area в виде пересечения его текущей формы и формы указанной области Area.
boolean intersects(double x, double y, double w, double h)
Проверяет, пересекается ли внутренняя область объекта Shape с внутренней областью указанной прямоугольной области.
boolean intersects(Rectangle2D r)
Проверяет, пересекается ли внутренняя область объекта Shape с внутренней областью указанной области Rectangle2D.
boolean isEmpty()
Проверяет, охватывает ли этот объект Area какую-либо область.
boolean isPolygonal()
Проверяет, состоит ли этот объект Area полностью из геометрии с прямыми ребрами многоугольника.
boolean isRectangular()
Проверяет, имеет ли этот объект Area прямоугольную форму.
boolean isSingular()
Проверяет, состоит ли этот объект Area из одной замкнутой подтраектории.
void reset()
Удаляет всю геометрию из этого объекта Area и восстанавливает его в пустую область.
void subtract(Area rhs)
Вычитает форму указанной области Area из формы этого объекта Area.
void transform(AffineTransform t)
Преобразует геометрию этого объекта Area с помощью указанного преобразования AffineTransform.

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

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

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

Area

public Area()
Конструктор по умолчанию, создающий пустую область.
Since:
1.2

Area

public Area(Shape s)
Класс Area создаёт геометрию области из указанного объекта Shape. Геометрия явным образом закрывается, если она не закрыта уже. Правило заполнения (чёт-нечёт или обход контура) определённое геометрией Shape используется для определения результирующей замкнутой области.
Parameters:
s - Shape, из которого создаётся область
Throws:
NullPointerException - если s равно null
Since:
1.2

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

add

public void add(Area rhs)
Добавляет форму указанной Area к форме этого Area. Результирующая форма этого Area будет включать объединение обеих фигур, или все области, содержащиеся либо в этой, либо в указанной Area.
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.add(a2);

        a1(before)     +         a2         =     a1(after)

     ################     ################     ################
     ##############         ##############     ################
     ############             ############     ################
     ##########                 ##########     ################
     ########                     ########     ################
     ######                         ######     ######    ######
     ####                             ####     ####        ####
     ##                                 ##     ##            ##
 
Parameters:
rhs - Area для добавления к текущей фигуре
Throws:
NullPointerException - если rhs равно null
Since:
1.2

subtract

public void subtract(Area rhs)
Вычитает форму указанной Area из формы этого Area. Результирующая форма этого Area будет включать области, содержащиеся только в этом Area и не содержащиеся в указанной Area.
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.subtract(a2);

        a1(before)     -         a2         =     a1(after)

     ################     ################
     ##############         ##############     ##
     ############             ############     ####
     ##########                 ##########     ######
     ########                     ########     ########
     ######                         ######     ######
     ####                             ####     ####
     ##                                 ##     ##
 
Parameters:
rhs - Area для вычитания из текущей фигуры
Throws:
NullPointerException - если rhs равно null
Since:
1.2

intersect

public void intersect(Area rhs)
Устанавливает форму этого Area в пересечение его текущей формы и формы указанной Area. Результирующая форма этого Area будет включать только области, которые содержатся как в этом Area, так и в указанной Area.
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.intersect(a2);

      a1(before)   intersect     a2         =     a1(after)

     ################     ################     ################
     ##############         ##############       ############
     ############             ############         ########
     ##########                 ##########           ####
     ########                     ########
     ######                         ######
     ####                             ####
     ##                                 ##
 
Parameters:
rhs - Area для пересечения с этим Area
Throws:
NullPointerException - если rhs равно null
Since:
1.2

exclusiveOr

public void exclusiveOr(Area rhs)
Устанавливает форму этого Area в объединённую область его текущей формы и формы указанной Area, минус их пересечение. Результирующая форма этого Area будет включать только области, содержащиеся либо в этом Area или в указанной Area, но не в обоих одновременно.
     // Example:
     Area a1 = new Area([triangle 0,0 => 8,0 => 0,8]);
     Area a2 = new Area([triangle 0,0 => 8,0 => 8,8]);
     a1.exclusiveOr(a2);

        a1(before)    xor        a2         =     a1(after)

     ################     ################
     ##############         ##############     ##            ##
     ############             ############     ####        ####
     ##########                 ##########     ######    ######
     ########                     ########     ################
     ######                         ######     ######    ######
     ####                             ####     ####        ####
     ##                                 ##     ##            ##
 
Parameters:
rhs - Area для выполнения исключающего ИЛИ с этим Area.
Throws:
NullPointerException - если rhs равно null
Since:
1.2

reset

public void reset()
Удаляет всю геометрию из этого Area и восстанавливает его до пустой области.
Since:
1.2

isEmpty

public boolean isEmpty()
Проверяет, содержит ли этот объект Area какую-либо область.
Returns:
true если этот объект Area представляет пустую область; false в противном случае.
Since:
1.2

isPolygonal

public boolean isPolygonal()
Проверяет, состоит ли эта Area полностью из прямой геометрии многоугольников.
Returns:
true если геометрия этого Area состоит полностью из отрезков прямых; false в противном случае.
Since:
1.2

isRectangular

public boolean isRectangular()
Проверяет, имеет ли эта Area прямоугольную форму.
Returns:
true если геометрия этого Area имеет прямоугольную форму; false в противном случае.
Since:
1.2

isSingular

public boolean isSingular()
Проверяет, состоит ли эта Area из одного замкнутого подпути. Этот метод возвращает true если путь содержит 0 или 1 подпуть, или false если путь содержит более 1 подпути. Подпути считаются по количеству сегментов SEG_MOVETO, которые появляются в пути.
Returns:
true если Area состоит из одной базовой геометрии; false в противном случае.
Since:
1.2

getBounds2D

public Rectangle2D getBounds2D()
Возвращает высокоточную ограничивающую Rectangle2D, которая полностью охватывает этот Area.

Класс Area попытается вернуть наименьший возможный ограничивающий прямоугольник для фигуры. Ограничивающий прямоугольник не будет расширяться для включения контрольных точек кривых в контуре фигуры, но должен плотно прилегать к фактической геометрии контура.

Specified by:
getBounds2D в интерфейсе Shape
Returns:
ограничивающий Rectangle2D для Area.
Since:
1.2
See Also:
  • Shape.getBounds()

getBounds

public Rectangle getBounds()
Возвращает ограничивающий Rectangle, который полностью охватывает эту Area.

Класс Area попытается вернуть наименьший возможный ограничивающий прямоугольник для фигуры. Ограничивающий прямоугольник не будет расширяться для включения контрольных точек кривых в контуре фигуры, но должен плотно прилегать к фактической геометрии контура. Поскольку возвращаемый объект представляет ограничивающий прямоугольник с целыми числами, ограничивающий прямоугольник может быть только таким же плотным, как ближайшие целочисленные координаты, которые охватывают геометрию фигуры.

Specified by:
getBounds в интерфейсе Shape
Returns:
ограничивающий Rectangle для Area.
Since:
1.2
See Also:
  • Shape.getBounds2D()

clone

public Object clone()
Возвращает точную копию этого объекта Area.
Overrides:
clone в классе Object
Returns:
Созданный клонированный объект
Since:
1.2
See Also:
  • Cloneable

equals

public boolean equals(Area other)
Проверяет, равны ли геометрии двух объектов Area. Этот метод вернёт false, если аргумент равен null.
Parameters:
other - Area для сравнения с этим Area
Returns:
true если две геометрии равны; false в противном случае.
Since:
1.2

transform

public void transform(AffineTransform t)
Преобразует геометрию этого Area с помощью указанного AffineTransform. Геометрия преобразуется на месте, что постоянно изменяет замкнутую область, определённую этим объектом.
Parameters:
t - преобразование для преобразования области
Throws:
NullPointerException - если t равно null
Since:
1.2

createTransformedArea

public Area createTransformedArea(AffineTransform t)
Создаёт новый объект Area , содержащий ту же геометрию, что и этот Area , преобразованный с помощью указанного AffineTransform. Этот Area объект не изменяется.
Parameters:
t - указанное AffineTransform для преобразования нового Area
Returns:
новый объект Area , представляющий преобразованную геометрию.
Throws:
NullPointerException - если t равно null
Since:
1.2

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

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 и вычисления containment слишком дорогостоящие.
С:
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 и вычисления containment слишком дорогостоящие.
С:
1.2
См. также:
  • Shape.contains(double, double, double, double)

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)

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
Создаёт PathIterator для контура этого объекта Area. Объект Area не изменяется.
Определено в:
getPathIterator в интерфейсе Shape
Параметры:
at - необязательное AffineTransform для применения к координатам по мере их возвращения в итерации, или null если требуется не преобразованные координаты
Возвращает:
объект PathIterator, возвращающий геометрию контура этого объекта Area, по одному сегменту за раз.
С:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at, double flatness)
Создаёт итератор для сглаженного контура этого объекта Area. Итератор возвращает только неизогнутые сегменты пути, представленные типами точек SEG_MOVETO, SEG_LINETO и SEG_CLOSE. Объект Area не изменяется.
Определено в:
getPathIterator в интерфейсе Shape
Параметры:
at - необязательное AffineTransform для применения к координатам по мере их возвращения в процессе итерации, или null если требуются не преобразованные координаты
flatness - максимальное отклонение контрольных точек кривой от коллинеарности, прежде чем кривая делится на прямую линию, соединяющую конечные точки
Возвращает:
объект PathIterator , возвращающий геометрию контура этого объекта Area, по одному сегменту за раз.
С:
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/geom/Area.html

Spec-Zone.ru

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