Класс 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. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Это абстрактный класс, который нельзя создать напрямую. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Добавляет в этот Rectangle2D точку, заданную аргументами двойной точности newx и newy. |
void |
add |
Добавляет объект pt типа Point2D к этому Rectangle2D. |
void |
add |
Добавляет объект типа Rectangle2D к этому Rectangle2D. |
boolean |
contains |
Проверяет, находятся ли указанные координаты внутри границы Shape согласно определению принадлежности внутренней области. |
boolean |
contains |
Проверяет, полностью ли внутренняя область Shape содержит указанную прямоугольную область. |
abstract Rectangle2D |
createIntersection |
Возвращает новый объект Rectangle2D, представляющий пересечение этого Rectangle2D с указанным Rectangle2D. |
abstract Rectangle2D |
createUnion |
Возвращает новый объект Rectangle2D, представляющий объединение этого Rectangle2D с указанным Rectangle2D. |
boolean |
equals |
Определяет, равен ли указанный Object этому Rectangle2D. |
Rectangle2D |
getBounds2D() |
Возвращает ограничивающий прямоугольник Shape с более высокой точностью и большей достоверностью, чем метод getBounds. |
PathIterator |
getPathIterator |
Возвращает объект-итератор, определяющий границу этого Rectangle2D. |
PathIterator |
getPathIterator |
Возвращает объект-итератор, определяющий границу сглаженного Rectangle2D. |
int |
hashCode() |
Возвращает хеш-код этого Rectangle2D. |
static void |
intersect |
Пересекает указанную пару исходных объектов Rectangle2D и помещает результат в указанный целевой объект Rectangle2D. |
boolean |
intersects |
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанной прямоугольной области. |
boolean |
intersectsLine |
Проверяет, пересекает ли указанный отрезок внутреннюю область этого Rectangle2D. |
boolean |
intersectsLine |
Проверяет, пересекает ли указанный отрезок внутреннюю область этого Rectangle2D. |
abstract int |
outcode |
Определяет положение указанных координат относительно этого Rectangle2D. |
int |
outcode |
Определяет положение указанного Point2D относительно этого Rectangle2D. |
void |
setFrame |
Задает положение и размер внешних границ этого Rectangle2D указанными значениями прямоугольника. |
abstract void |
setRect |
Задает положение и размер этого Rectangle2D указанными значениями double. |
void |
setRect |
Задает этому Rectangle2D то же значение, что и указанному Rectangle2D. |
static void |
union |
Объединяет пару исходных объектов 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 внутри границы Shape согласно определению принадлежности внутренней области. |
boolean |
contains |
Проверяет, полностью ли внутренняя область 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 |
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанного Rectangle2D. |
abstract boolean |
isEmpty() |
Определяет, является ли RectangularShape пустым. |
void |
setFrame |
Задает положение и размер ограничивающего прямоугольника этого Shape указанными Point2D и Dimension2D соответственно. |
void |
setFrame |
Задает ограничивающий прямоугольник этого Shape указанным Rectangle2D. |
void |
setFrameFromCenter |
Задает ограничивающий прямоугольник этого Shape на основе указанных координат центральной точки и угловой точки. |
void |
setFrameFromCenter |
Задает ограничивающий прямоугольник этого Shape на основе указанного центра Point2D и угла Point2D. |
void |
setFrameFromDiagonal |
Задает диагональ ограничивающего прямоугольника этого Shape на основе двух указанных координат. |
void |
setFrameFromDiagonal |
Задает диагональ ограничивающего прямоугольника этого 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 |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного периода реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного периода реального времени. |
Подробное описание полей
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
- См. также:
Подробное описание методов
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
- См. также:
outcode
public int outcode(Point2D p)
Point2D относительно этого Rectangle2D. Метод вычисляет побитовое ИЛИ соответствующих значений масок, указывающих для каждой стороны этого Rectangle2D, находится ли указанный Point2D по ту же сторону границы, что и остальная часть этого Rectangle2D.- Параметры:
-
p— указанныйPoint2D - Возвращает:
- логическое ИЛИ всех соответствующих кодов положения.
- Начиная с:
- 1.2
- См. также:
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
- См. также:
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
- См. также:
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
- См. также:
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
- См. также:
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
equals
public boolean equals(Object obj)
Object этому Rectangle2D. Указанный Object равен этому Rectangle2D, если он является экземпляром Rectangle2D и его положение и размер совпадают с положением и размером этого Rectangle2D.
© 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.