Класс 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.
- С:
- 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.
Если 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
- См. также:
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(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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/geom/Rectangle2D.html