Класс 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 |
Добавляет точку, заданную аргументами двойной точности newx и newy, в этот Rectangle2D. |
void |
add |
Добавляет объект Point2D pt в этот 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
Подробное описание полей
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.
Если точка point находится внутри shape согласно методу contains(point), то она должна находиться внутри возвращенного ограничивающего объекта Rectangle2D согласно методу contains(point) класса bounds. В частности:
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)
Rectangle2D точку, заданную аргументами двойной точности newx и newy. Результирующий 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/geom/Rectangle2D.html