Класс 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).
Этот класс является только абстрактным суперклассом для всех объектов, хранящих прямоугольник 2D. Фактическое представление координат оставляется подклассу.
- С:
- 1.2
Вложенные классы
| Модификатор и тип | Класс и описание |
|---|---|
static class |
Rectangle2D.Double Класс |
static class |
Rectangle2D.Float Класс |
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static int |
OUT_BOTTOM Флаги, указывающие, что точка расположена ниже этого |
static int |
OUT_LEFT Флаги, указывающие, что точка расположена слева от этого |
static int |
OUT_RIGHT Флаги, указывающие, что точка расположена справа от этого |
static int |
OUT_TOP Флаги, указывающие, что точка расположена сверху от этого |
Краткое описание конструкторов
| Модификатор | Конструктор и описание |
|---|---|
protected |
Rectangle2D() Это абстрактный класс, который нельзя создать напрямую. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
void |
add(double newx,
double newy) Добавляет точку, заданную значениями с двойной точностью |
void |
add(Point2D pt) Добавляет объект |
void |
add(Rectangle2D r) Добавляет объект |
boolean |
contains(double x,
double y) Проверяет, находятся ли указанные координаты внутри границ |
boolean |
contains(double x,
double y,
double w,
double h) Проверяет, полностью ли внутренность |
abstract Rectangle2D |
createIntersection(Rectangle2D r) Возвращает новый объект |
abstract Rectangle2D |
createUnion(Rectangle2D r) Возвращает новый объект |
boolean |
equals(Object obj) Определяет, равен ли указанный |
Rectangle2D |
getBounds2D() Возвращает рамки |
PathIterator |
getPathIterator(AffineTransform at) Возвращает объект итерации, определяющий границу этого |
PathIterator |
getPathIterator(AffineTransform at,
double flatness) Возвращает объект итерации, определяющий границу сглаженного |
int |
hashCode() Возвращает хешкод для этого |
static void |
intersect(Rectangle2D src1,
Rectangle2D src2,
Rectangle2D dest) Пересекает пару указанных объектов-источников |
boolean |
intersects(double x,
double y,
double w,
double h) Проверяет, пересекается ли внутренность |
boolean |
intersectsLine(double x1,
double y1,
double x2,
double y2) Проверяет, пересекает ли указанный отрезок прямой внутреннюю часть этого |
boolean |
intersectsLine(Line2D l) Проверяет, пересекает ли указанный отрезок прямой внутреннюю часть этого |
abstract int |
outcode(double x,
double y) Определяет, где указанные координаты лежат относительно этого |
int |
outcode(Point2D p) Определяет, где указанная точка |
void |
setFrame(double x,
double y,
double w,
double h) Устанавливает положение и размер внешних границ этого |
abstract void |
setRect(double x,
double y,
double w,
double h) Устанавливает положение и размер этого |
void |
setRect(Rectangle2D r) Устанавливает этот |
static void |
union(Rectangle2D src1,
Rectangle2D src2,
Rectangle2D dest) Объединяет пару объектов-источников |
Методы, унаследованные от класса 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 Методы, унаследованные от класса java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait Поля
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
- См. также:
-
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 - 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
- См. также:
-
OUT_LEFT,OUT_TOP,OUT_RIGHT,OUT_BOTTOM
outcode
public int outcode(Point2D p)
Определяет, где указанная Point2D расположена относительно этой Rectangle2D. Этот метод вычисляет побитовое ИЛИ соответствующих значений маски, указывающих для каждой стороны этой Rectangle2D, находится ли или нет указанная Point2D на той же стороне ребра, что и остальная часть этой Rectangle2D.
- Параметры:
-
p- указаннаяPoint2D - Возвращает:
- логическое ИЛИ всех соответствующих кодов.
- Since:
- 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 - Since:
- 1.2
- См. также:
RectangularShape.getFrame()
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
- См. также:
Shape.getBounds()
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
- См. также:
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(java.lang.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
© 1993, 2020, 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.