Класс Rectangle2D
- Все реализуемые интерфейсы:
-
Shape,Cloneable
- Прямые известные подклассы:
-
Rectangle,Rectangle2D.Double,Rectangle2D.Float
public abstract class Rectangle2D extends RectangularShape
Rectangle2D описывает прямоугольник, определенный положением (x,y) и размерами (w x h). Этот класс является только абстрактным суперклассом для всех объектов, хранящих прямоугольник 2D. Фактическое представление координат остается за подклассом.
- С:
- 1.2
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
Rectangle2D.Double |
Класс Double определяет прямоугольник, заданный координатами с двойной точностью. |
static class |
Rectangle2D.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() |
Возвращает прямоугольник с высокой точностью и большей точностью, чем метод getBounds, для Shape. |
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. |
Методы, объявленные в классе java.awt.geom.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.- Since:
- 1.2
- См. также:
OUT_TOP
public static final int OUT_TOP
Rectangle2D.- Since:
- 1.2
- См. также:
OUT_RIGHT
public static final int OUT_RIGHT
Rectangle2D.- Since:
- 1.2
- См. также:
OUT_BOTTOM
public static final int OUT_BOTTOM
Rectangle2D.- Since:
- 1.2
- См. также:
Подробное описание конструкторов
Rectangle2D
protected Rectangle2D()
- Since:
- 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 - Since:
- 1.2
setRect
public void setRect(Rectangle2D r)
Rectangle2D в соответствии с указанным Rectangle2D.- Параметры:
-
r- указанныйRectangle2D - Since:
- 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в противном случае. - Since:
- 1.2
intersectsLine
public boolean intersectsLine(Line2D l)
Rectangle2D.- Параметры:
-
l- указанныйLine2Dдля проверки пересечения с внутренней областью этойRectangle2D - Возвращает:
-
true, если указанныйLine2Dпересекает внутреннюю область этойRectangle2D;falseв противном случае. - Since:
- 1.2
outcode
public abstract int outcode(double x, double y)
Rectangle2D. Этот метод вычисляет побитовое ИЛИ соответствующих значений маски, показывая для каждой стороны этой Rectangle2D, находятся ли заданные координаты на одной стороне ребра, что и остальные точки этой Rectangle2D.- Параметры:
-
x- заданная координата X -
y- заданная координата Y - Возвращает:
- логическое ИЛИ всех соответствующих кодов.
- Since:
- 1.2
- См. также:
outcode
public int outcode(Point2D p)
Point2D лежит относительно этой Rectangle2D. Этот метод вычисляет побитовое ИЛИ соответствующих значений маски, показывая для каждой стороны этой Rectangle2D, находится ли указанная Point2D на одной стороне ребра, что и остальные точки этой Rectangle2D.- Параметры:
-
p- указаннаяPoint2D - Возвращает:
- логическое ИЛИ всех соответствующих кодов.
- Since:
- 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 - Since:
- 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. - Since:
- 1.2
- См. также:
contains
public boolean contains(double x, double y)
Shape, как описано в определении внутренней области.- Параметры:
-
x- заданная координата X для проверки -
y- заданная координата Y для проверки - Возвращает:
-
true, если указанные координаты находятся внутри границы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, и поэтому его можно использовать, если требуется более точный ответ.- Параметры:
-
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 объекта не повлияют на уже выполняющиеся итерации этой геометрии.- Specified by:
-
getPathIteratorв интерфейсеShape - Overrides:
-
getPathIteratorв классеRectangularShape - Parameters:
-
at- необязательноеAffineTransform, которое должно быть применено к координатам по мере их возвращения в итерации, илиnull, если требуются не преобразованные координаты -
flatness- максимальное расстояние, на которое отрезки прямых, используемые для приближения криволинейных отрезков, могут отклоняться от любой точки исходной кривой. Поскольку прямоугольники уже сглажены, параметрflatnessигнорируется. - Returns:
- объект
PathIterator, который возвращает геометрию контура этогоRectangle2D, по одному сегменту за раз. - Since:
- 1.2
hashCode
public int hashCode()
Rectangle2D.- Overrides:
-
hashCodeв классеObject - Returns:
- хэш-код для этого
Rectangle2D. - Since:
- 1.2
- See Also:
equals
public boolean equals(Object obj)
Object этому Rectangle2D. Указанный Object равен этому Rectangle2D, если он является экземпляром Rectangle2D и если его расположение и размеры совпадают с этим Rectangle2D.- Overrides:
-
equalsв классеObject - Parameters:
-
obj-Objectдля сравнения с этимRectangle2D. - Returns:
-
trueеслиobjявляется экземпляромRectangle2Dи имеет те же значения;falseв противном случае. - Since:
- 1.2
- See Also:
© 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/Rectangle2D.html