Spec-Zone.ru › OpenJDK 21

Класс 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
Класс 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.

Краткое описание конструкторов

Rectangle2D()
Модификатор Конструктор Описание
protected
Это абстрактный класс, который нельзя создать напрямую.

Краткое описание методов

Модификатор и тип Метод Описание
void add(double newx, double newy)
Добавляет точку, заданную аргументами двойной точности newx и newy, в этот Rectangle2D.
void add(Point2D pt)
Добавляет объект Point2D pt в этот Rectangle2D.
void add(Rectangle2D r)
Добавляет объект Rectangle2D в этот Rectangle2D.
boolean contains(double x, double y)
Проверяет, находятся ли указанные координаты внутри границы Shape, как описано в определении попадания внутрь.
boolean contains(double x, double y, double w, double h)
Проверяет, полностью ли внутренняя часть Shape содержит указанную прямоугольную область.
abstract Rectangle2D createIntersection(Rectangle2D r)
Возвращает новый объект Rectangle2D, представляющий пересечение этого Rectangle2D с указанным Rectangle2D.
abstract Rectangle2D createUnion(Rectangle2D r)
Возвращает новый объект Rectangle2D, представляющий объединение этого Rectangle2D с указанным Rectangle2D.
boolean equals(Object obj)
Определяет, равен ли указанный Object данному Rectangle2D.
Rectangle2D getBounds2D()
Возвращает прямоугольник ограничивающей рамки для Shape с большей точностью, чем метод getBounds.
PathIterator getPathIterator(AffineTransform at)
Возвращает объект итерации, определяющий границу данного Rectangle2D.
PathIterator getPathIterator(AffineTransform at, double flatness)
Возвращает объект итерации, определяющий границу сглаженного Rectangle2D.
int hashCode()
Возвращает хэш-код для данного Rectangle2D.
static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Пересекает пару указанных исходных объектов Rectangle2D и помещает результат в указанный целевой объект Rectangle2D.
boolean intersects(double x, double y, double w, double h)
Проверяет, пересекается ли внутренняя часть Shape с внутренней частью указанной прямоугольной области.
boolean intersectsLine(double x1, double y1, double x2, double y2)
Проверяет, пересекает ли указанный отрезок прямой внутреннюю часть данного Rectangle2D.
boolean intersectsLine(Line2D l)
Проверяет, пересекает ли указанный отрезок прямой внутреннюю часть данного Rectangle2D.
abstract int outcode(double x, double y)
Определяет, где указанные координаты лежат относительно данного Rectangle2D.
int outcode(Point2D p)
Определяет, где указанная точка Point2D расположена относительно данного Rectangle2D.
void setFrame(double x, double y, double w, double h)
Устанавливает положение и размер внешней границы данного Rectangle2D до указанных прямоугольных значений.
abstract void setRect(double x, double y, double w, double h)
Устанавливает положение и размер данного Rectangle2D до указанных значений double.
void setRect(Rectangle2D r)
Устанавливает этот Rectangle2D таким же, как указанный Rectangle2D.
static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Объединяет пару исходных объектов 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

Методы, объявленные в классе 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 и вычисления containment слишком сложны.
С тех пор:
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 объекта не повлияют на уже обрабатываемые итерации этой геометрии.
Specified by:
getPathIterator in interface Shape
Overrides:
getPathIterator in class RectangularShape
Parameters:
at - необязательное AffineTransform, которое должно применяться к координатам по мере их возвращения в процессе итерации, или null если требуются не преобразованные координаты
flatness - максимальное расстояние, на которое отрезки прямых, используемые для аппроксимации криволинейных участков, могут отклоняться от любой точки исходной кривой. Поскольку прямоугольники уже сглажены, параметр flatness игнорируется.
Returns:
объект PathIterator, который возвращает геометрию контура этого Rectangle2D, по одному отрезку за раз.
Since:
1.2

hashCode

public int hashCode()
Возвращает хэш-код для этого Rectangle2D.
Overrides:
hashCode in class Object
Returns:
хэш-код для этого Rectangle2D.
Since:
1.2
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

equals

public boolean equals(Object obj)
Определяет, равен ли указанный Object этому Rectangle2D. Указанный Object равен этому Rectangle2D , если он является экземпляром Rectangle2D и если его расположение и размер совпадают с этим Rectangle2D.
Overrides:
equals in class Object
Parameters:
obj - Object для сравнения с этим Rectangle2D.
Returns:
true , если obj является экземпляром Rectangle2D и имеет одинаковые значения; false в противном случае.
Since:
1.2
See Also:
  • Object.hashCode()
  • HashMap

© 1993, 2023, 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/21/docs/api/java.desktop/java/awt/geom/Rectangle2D.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API