Spec-Zone.ru › OpenJDK 27

Класс Rectangle2D

java.lang.Object
java.awt.geom.RectangularShape
java.awt.geom.Rectangle2D
Все реализуемые интерфейсы:
Shape, Cloneable
Прямые известные подклассы:
Rectangle, Rectangle2D.Double, Rectangle2D.Float
public abstract class Rectangle2D extends RectangularShape
Класс Rectangle2D описывает прямоугольник, заданный положением (x,y) и размером (w x h).

Этот класс является только абстрактным суперклассом для всех объектов, хранящих двумерный прямоугольник. Фактическое представление координат в хранилище определяется подклассом.

Начиная с версии:
1.2

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  Rectangle2D.Double
Класс Double определяет прямоугольник, заданный координатами типа double.
static class  Rectangle2D.Float
Класс Float определяет прямоугольник, заданный координатами типа float.

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

Модификатор и тип Поле Описание
static final int OUT_BOTTOM
Битовая маска, указывающая, что точка находится ниже этого Rectangle2D.
static final int OUT_LEFT
Битовая маска, указывающая, что точка находится левее этого Rectangle2D.
static final int OUT_RIGHT
Битовая маска, указывающая, что точка находится правее этого Rectangle2D.
static final int OUT_TOP
Битовая маска, указывающая, что точка находится выше этого Rectangle2D.

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

Rectangle2D()
Модификатор Конструктор Описание
protected
Это абстрактный класс, который нельзя создать напрямую.

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

Модификатор и тип Метод Описание
void add(double newx, double newy)
Добавляет в этот Rectangle2D точку, заданную аргументами двойной точности newx и newy.
void add(Point2D pt)
Добавляет объект pt типа Point2D к этому Rectangle2D.
void add(Rectangle2D r)
Добавляет объект типа Rectangle2D к этому Rectangle2D.
boolean contains(double x, double y)
Проверяет, находятся ли указанные координаты внутри границы Shape согласно определению принадлежности внутренней области.
boolean contains(double x, double y, double w, double h)
Проверяет, полностью ли внутренняя область Shape содержит указанную прямоугольную область.
abstract Rectangle2D createIntersection(Rectangle2D r)
Возвращает новый объект Rectangle2D, представляющий пересечение этого Rectangle2D с указанным Rectangle2D.
abstract Rectangle2D createUnion(Rectangle2D r)
Возвращает новый объект Rectangle2D, представляющий объединение этого Rectangle2D с указанным Rectangle2D.
boolean equals(Object obj)
Определяет, равен ли указанный Object этому Rectangle2D.
Rectangle2D getBounds2D()
Возвращает ограничивающий прямоугольник Shape с более высокой точностью и большей достоверностью, чем метод getBounds.
PathIterator getPathIterator(AffineTransform at)
Возвращает объект-итератор, определяющий границу этого Rectangle2D.
PathIterator getPathIterator(AffineTransform at, double flatness)
Возвращает объект-итератор, определяющий границу сглаженного Rectangle2D.
int hashCode()
Возвращает хеш-код этого Rectangle2D.
static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Пересекает указанную пару исходных объектов Rectangle2D и помещает результат в указанный целевой объект Rectangle2D.
boolean intersects(double x, double y, double w, double h)
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанной прямоугольной области.
boolean intersectsLine(double x1, double y1, double x2, double y2)
Проверяет, пересекает ли указанный отрезок внутреннюю область этого Rectangle2D.
boolean intersectsLine(Line2D l)
Проверяет, пересекает ли указанный отрезок внутреннюю область этого Rectangle2D.
abstract int outcode(double x, double y)
Определяет положение указанных координат относительно этого Rectangle2D.
int outcode(Point2D p)
Определяет положение указанного Point2D относительно этого Rectangle2D.
void setFrame(double x, double y, double w, double h)
Задает положение и размер внешних границ этого Rectangle2D указанными значениями прямоугольника.
abstract void setRect(double x, double y, double w, double h)
Задает положение и размер этого Rectangle2D указанными значениями double.
void setRect(Rectangle2D r)
Задает этому Rectangle2D то же значение, что и указанному Rectangle2D.
static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Объединяет пару исходных объектов Rectangle2D и помещает результат в указанный целевой объект Rectangle2D.

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

clone, contains, contains, getBounds, getCenterX, getCenterY, getFrame, getHeight, getMaxX, getMaxY, getMinX, getMinY, getWidth, getX, getY, intersects, isEmpty, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
Модификатор и тип Метод Описание
Object clone()
Создает новый объект того же класса с тем же содержимым, что и у этого объекта.
boolean contains(Point2D p)
Проверяет, находится ли указанный Point2D внутри границы Shape согласно определению принадлежности внутренней области.
boolean contains(Rectangle2D r)
Проверяет, полностью ли внутренняя область Shape содержит указанный Rectangle2D.
Rectangle getBounds()
Возвращает целочисленный Rectangle, полностью охватывающий Shape.
double getCenterX()
Возвращает X-координату центра ограничивающего прямоугольника Shape с точностью double.
double getCenterY()
Возвращает Y-координату центра ограничивающего прямоугольника Shape с точностью double.
Rectangle2D getFrame()
Возвращает ограничивающий Rectangle2D, определяющий общую форму этого объекта.
abstract double getHeight()
Возвращает высоту ограничивающего прямоугольника с точностью double.
double getMaxX()
Возвращает наибольшую X-координату ограничивающего прямоугольника Shape с точностью double.
double getMaxY()
Возвращает наибольшую Y-координату ограничивающего прямоугольника Shape с точностью double.
double getMinX()
Возвращает наименьшую X-координату ограничивающего прямоугольника Shape с точностью double.
double getMinY()
Возвращает наименьшую Y-координату ограничивающего прямоугольника Shape с точностью double.
abstract double getWidth()
Возвращает ширину ограничивающего прямоугольника с точностью double.
abstract double getX()
Возвращает X-координату верхнего левого угла ограничивающего прямоугольника с точностью double.
abstract double getY()
Возвращает Y-координату верхнего левого угла ограничивающего прямоугольника с точностью double.
boolean intersects(Rectangle2D r)
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанного Rectangle2D.
abstract boolean isEmpty()
Определяет, является ли RectangularShape пустым.
void setFrame(Point2D loc, Dimension2D size)
Задает положение и размер ограничивающего прямоугольника этого Shape указанными Point2D и Dimension2D соответственно.
void setFrame(Rectangle2D r)
Задает ограничивающий прямоугольник этого Shape указанным Rectangle2D.
void setFrameFromCenter(double centerX, double centerY, double cornerX, double cornerY)
Задает ограничивающий прямоугольник этого Shape на основе указанных координат центральной точки и угловой точки.
void setFrameFromCenter(Point2D center, Point2D corner)
Задает ограничивающий прямоугольник этого Shape на основе указанного центра Point2D и угла Point2D.
void setFrameFromDiagonal(double x1, double y1, double x2, double y2)
Задает диагональ ограничивающего прямоугольника этого Shape на основе двух указанных координат.
void setFrameFromDiagonal(Point2D p1, Point2D p2)
Задает диагональ ограничивающего прямоугольника этого Shape на основе двух указанных объектов Point2D.

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

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

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

OUT_LEFT

public static final int OUT_LEFT
Битовая маска, указывающая, что точка находится левее этого Rectangle2D.
Начиная с:
1.2
См. также:
  • Значения константных полей

OUT_TOP

public static final int OUT_TOP
Битовая маска, указывающая, что точка находится выше этого Rectangle2D.
Начиная с:
1.2
См. также:
  • Значения константных полей

OUT_RIGHT

public static final int OUT_RIGHT
Битовая маска, указывающая, что точка находится правее этого Rectangle2D.
Начиная с:
1.2
См. также:
  • Значения константных полей

OUT_BOTTOM

public static final int OUT_BOTTOM
Битовая маска, указывающая, что точка находится ниже этого Rectangle2D.
Начиная с:
1.2
См. также:
  • Значения константных полей

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

Rectangle2D

protected Rectangle2D()
Это абстрактный класс, который нельзя создать напрямую. Для создания экземпляров доступны подклассы с реализацией для конкретных типов; они предоставляют несколько форматов хранения данных, необходимых для выполнения различных методов доступа, описанных ниже.
Начиная с:
1.2
См. также:
  • Rectangle2D.Float
  • Rectangle2D.Double
  • Rectangle

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

setRect

public abstract void setRect(double x, double y, double w, double h)
Задает положение и размер этого Rectangle2D указанными значениями double.
Параметры:
x — X-координата верхнего левого угла этого Rectangle2D
y — Y-координата верхнего левого угла этого Rectangle2D
w — ширина этого Rectangle2D
h — высота этого Rectangle2D
Начиная с:
1.2

setRect

public void setRect(Rectangle2D r)
Задает для этого Rectangle2D значение, совпадающее с указанным Rectangle2D.
Параметры:
r — указанное Rectangle2D
Начиная с:
1.2

intersectsLine

public boolean intersectsLine(double x1, double y1, double x2, double y2)
Проверяет, пересекает ли указанный отрезок внутреннюю область этого Rectangle2D.
Параметры:
x1 — X-координата начальной точки указанного отрезка
y1 — Y-координата начальной точки указанного отрезка
x2 — X-координата конечной точки указанного отрезка
y2 — Y-координата конечной точки указанного отрезка
Возвращает:
true, если указанный отрезок пересекает внутреннюю область этого Rectangle2D; в противном случае — false.
Начиная с:
1.2

intersectsLine

public boolean intersectsLine(Line2D l)
Проверяет, пересекает ли указанный отрезок внутреннюю область этого Rectangle2D.
Параметры:
l — указанный Line2D, для которого проверяется пересечение с внутренней областью этого Rectangle2D
Возвращает:
true, если указанный Line2D пересекает внутреннюю область этого Rectangle2D; в противном случае — false.
Начиная с:
1.2

outcode

public abstract int outcode(double x, double y)
Определяет положение указанных координат относительно этого Rectangle2D. Метод вычисляет побитовое ИЛИ соответствующих значений масок, указывающих для каждой стороны этого Rectangle2D, находятся ли указанные координаты по ту же сторону границы, что и остальная часть этого Rectangle2D.
Параметры:
x — указанная X-координата
y — указанная Y-координата
Возвращает:
логическое ИЛИ всех соответствующих кодов положения.
Начиная с:
1.2
См. также:
  • OUT_LEFT
  • OUT_TOP
  • OUT_RIGHT
  • OUT_BOTTOM

outcode

public int outcode(Point2D p)
Определяет положение указанного Point2D относительно этого Rectangle2D. Метод вычисляет побитовое ИЛИ соответствующих значений масок, указывающих для каждой стороны этого Rectangle2D, находится ли указанный Point2D по ту же сторону границы, что и остальная часть этого Rectangle2D.
Параметры:
p — указанный Point2D
Возвращает:
логическое ИЛИ всех соответствующих кодов положения.
Начиная с:
1.2
См. также:
  • OUT_LEFT
  • OUT_TOP
  • OUT_RIGHT
  • OUT_BOTTOM

setFrame

public void setFrame(double x, double y, double w, double h)
Задает положение и размер внешних границ этого Rectangle2D указанными значениями прямоугольника.
Определено в:
setFrame в классе RectangularShape
Параметры:
x — X-координата верхнего левого угла этого Rectangle2D
y — Y-координата верхнего левого угла этого Rectangle2D
w — ширина этого Rectangle2D
h — высота этого Rectangle2D
Начиная с:
1.2
См. также:
  • RectangularShape.getFrame()

getBounds2D

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

Обратите внимание, что определение внутренней области может приводить к ситуациям, когда точки на определяющем контуре shape не считаются принадлежащими возвращенному объекту bounds, но только в случаях, когда эти точки также не считаются принадлежащими исходному shape.

Если согласно методу contains(point) точка point находится внутри shape, то согласно методу contains(point) класса bounds она должна находиться внутри возвращаемого объекта границ Rectangle2D. В частности:

shape.contains(p) требует bounds.contains(p)

Если точка point не находится внутри shape, она все же может содержаться в объекте bounds:

bounds.contains(p) не подразумевает shape.contains(p)

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

contains

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

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

createIntersection

public abstract Rectangle2D createIntersection(Rectangle2D r)
Возвращает новый объект Rectangle2D, представляющий пересечение этого Rectangle2D с указанным Rectangle2D.
Параметры:
r — Rectangle2D, с которым пересекается это Rectangle2D
Возвращает:
наибольший Rectangle2D, содержащийся как в указанном Rectangle2D, так и в этом Rectangle2D.
Начиная с:
1.2

intersect

public static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Находит пересечение указанной пары исходных объектов Rectangle2D и помещает результат в указанный целевой объект Rectangle2D. Один из исходных прямоугольников также может быть целевым, чтобы избежать создания третьего объекта Rectangle2D, но в этом случае исходные точки этого исходного прямоугольника будут перезаписаны данным методом.
Параметры:
src1 — первый из пары объектов Rectangle2D, для которых вычисляется пересечение
src2 — второй из пары объектов Rectangle2D, для которых вычисляется пересечение
dest — объект Rectangle2D, в котором хранится результат пересечения src1 и src2
Начиная с:
1.2

createUnion

public abstract Rectangle2D createUnion(Rectangle2D r)
Возвращает новый объект Rectangle2D, представляющий объединение этого Rectangle2D с указанным Rectangle2D.
Параметры:
r — Rectangle2D, которое нужно объединить с этим Rectangle2D
Возвращает:
наименьший Rectangle2D, содержащий и указанное Rectangle2D, и это Rectangle2D.
Начиная с:
1.2

union

public static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Объединяет указанную пару исходных объектов Rectangle2D и помещает результат в указанный целевой объект Rectangle2D. Один из исходных прямоугольников также может быть целевым, чтобы избежать создания третьего объекта Rectangle2D, но в этом случае исходные точки этого исходного прямоугольника будут перезаписаны данным методом.
Параметры:
src1 — первый из пары объектов Rectangle2D, которые нужно объединить
src2 — второй из пары объектов Rectangle2D, которые нужно объединить
dest — объект Rectangle2D, в котором хранится результат объединения src1 и src2
Начиная с:
1.2

add

public void add(double newx, double newy)
Добавляет точку, заданную аргументами двойной точности newx и newy, к этому Rectangle2D. Результирующий Rectangle2D — это наименьший Rectangle2D, содержащий исходный Rectangle2D и указанную точку.

После добавления точки вызов contains с добавленной точкой в качестве аргумента не обязательно возвращает true. Метод contains не возвращает true для точек на правой или нижней границе прямоугольника. Поэтому, если добавленная точка попадает на правую или нижнюю границу увеличенного прямоугольника, contains возвращает для этой точки false.

Параметры:
newx — X-координата новой точки
newy — Y-координата новой точки
Начиная с:
1.2

add

public void add(Point2D pt)
Добавляет объект Point2D pt к этому Rectangle2D. Результирующий Rectangle2D — это наименьший Rectangle2D, содержащий исходный Rectangle2D и указанный Point2D.

После добавления точки вызов contains с добавленной точкой в качестве аргумента не обязательно возвращает true. Метод contains не возвращает true для точек на правой или нижней границе прямоугольника. Поэтому, если добавленная точка попадает на правую или нижнюю границу увеличенного прямоугольника, contains возвращает для этой точки false.

Параметры:
pt — новый Point2D, добавляемый к этому Rectangle2D.
Начиная с:
1.2

add

public void add(Rectangle2D r)
Добавляет объект Rectangle2D к этому Rectangle2D. Результирующий Rectangle2D представляет собой объединение двух объектов Rectangle2D.
Параметры:
r — Rectangle2D, добавляемое к этому Rectangle2D.
Начиная с:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
Возвращает объект-итератор, описывающий границу этого Rectangle2D. Итератор этого класса безопасен для многопоточного использования: класс Rectangle2D гарантирует, что изменения геометрии объекта Rectangle2D не повлияют на уже выполняющийся обход этой геометрии.
Параметры:
at — необязательный AffineTransform, применяемый к координатам при их возврате в ходе итерации, или null, если нужны координаты без преобразования
Возвращает:
объект PathIterator, который возвращает геометрию контура этого Rectangle2D, по одному сегменту за раз.
Начиная с:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at, double flatness)
Возвращает объект-итератор, описывающий границу упрощенного Rectangle2D. Поскольку прямоугольники уже являются плоскими фигурами, параметр flatness игнорируется. Итератор этого класса безопасен для многопоточного использования: класс Rectangle2D гарантирует, что изменения геометрии объекта Rectangle2D не повлияют на уже выполняющийся обход этой геометрии.
Определено в:
getPathIterator в интерфейсе Shape
Переопределяет:
getPathIterator в классе RectangularShape
Параметры:
at — необязательный AffineTransform, применяемый к координатам при их возврате в ходе итерации, или null, если нужны координаты без преобразования
flatness — максимальное расстояние, на которое отрезки, используемые для аппроксимации криволинейных сегментов, могут отклоняться от любой точки исходной кривой. Поскольку прямоугольники уже являются плоскими фигурами, параметр flatness игнорируется.
Возвращает:
объект PathIterator, который возвращает геометрию контура этого Rectangle2D, по одному сегменту за раз.
Начиная с:
1.2

hashCode

public int hashCode()
Возвращает хеш-код этого Rectangle2D.
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этого Rectangle2D.
Начиная с:
1.2
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

equals

public boolean equals(Object obj)
Определяет, равен ли указанный Object этому Rectangle2D. Указанный Object равен этому Rectangle2D, если он является экземпляром Rectangle2D и его положение и размер совпадают с положением и размером этого Rectangle2D.
Переопределяет:
equals в классе Object
Параметры:
obj — Object для сравнения с этим Rectangle2D.
Возвращает:
true, если obj является экземпляром Rectangle2D и имеет те же значения; в противном случае — false.
Начиная с:
1.2
См. также:
  • Object.hashCode()
  • HashMap

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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