Spec-Zone.ru › OpenJDK 25

Класс CubicCurve2D

java.lang.Object
java.awt.geom.CubicCurve2D
Все реализуемые интерфейсы:
Shape, Cloneable
Прямые известные подклассы:
CubicCurve2D.Double, CubicCurve2D.Float
public abstract class CubicCurve2D extends Object implements Shape, Cloneable
Класс CubicCurve2D задаёт сегмент кубической параметрической кривой в координатном пространстве (x,y).

Этот класс является только абстрактным суперклассом для всех объектов, хранящих сегмент двумерной кубической кривой. Способ хранения координат определяется подклассом.

Начиная с версии:
1.2

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  CubicCurve2D.Double
Сегмент кубической параметрической кривой, заданный координатами double.
static class  CubicCurve2D.Float
Сегмент кубической параметрической кривой, заданный координатами float.

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

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

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

Модификатор и тип Метод Описание
Object clone()
Создаёт новый объект того же класса, что и этот объект.
boolean contains(double x, double y)
Проверяет, находятся ли указанные координаты внутри границы Shape согласно определению принадлежности внутренней области.
boolean contains(double x, double y, double w, double h)
Проверяет, полностью ли внутренняя область Shape содержит указанную прямоугольную область.
boolean contains(Point2D p)
Проверяет, находится ли указанная точка Point2D внутри границы Shape согласно определению принадлежности внутренней области.
boolean contains(Rectangle2D r)
Проверяет, полностью ли внутренняя область Shape содержит указанную Rectangle2D.
Rectangle getBounds()
Возвращает целочисленный объект Rectangle, полностью охватывающий Shape.
Rectangle2D getBounds2D()
Возвращает ограничивающий прямоугольник Shape с более высокой точностью, чем метод getBounds.
abstract Point2D getCtrlP1()
Возвращает первую контрольную точку.
abstract Point2D getCtrlP2()
Возвращает вторую контрольную точку.
abstract double getCtrlX1()
Возвращает координату X первой контрольной точки с двойной точностью.
abstract double getCtrlX2()
Возвращает координату X второй контрольной точки с двойной точностью.
abstract double getCtrlY1()
Возвращает координату Y первой контрольной точки с двойной точностью.
abstract double getCtrlY2()
Возвращает координату Y второй контрольной точки с двойной точностью.
double getFlatness()
Возвращает степень уплощения этой кривой.
static double getFlatness(double[] coords, int offset)
Возвращает степень уплощения кубической кривой, заданной контрольными точками, хранящимися в указанном массиве начиная с указанного индекса.
static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
Возвращает степень уплощения кубической кривой, заданной указанными контрольными точками.
double getFlatnessSq()
Возвращает квадрат степени уплощения этой кривой.
static double getFlatnessSq(double[] coords, int offset)
Возвращает квадрат степени уплощения кубической кривой, заданной контрольными точками, хранящимися в указанном массиве начиная с указанного индекса.
static double getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
Возвращает квадрат степени уплощения кубической кривой, заданной указанными контрольными точками.
abstract Point2D getP1()
Возвращает начальную точку.
abstract Point2D getP2()
Возвращает конечную точку.
PathIterator getPathIterator(AffineTransform at)
Возвращает объект-итератор, определяющий границу фигуры.
PathIterator getPathIterator(AffineTransform at, double flatness)
Возвращает объект-итератор, определяющий границу уплощённой фигуры.
abstract double getX1()
Возвращает координату X начальной точки с двойной точностью.
abstract double getX2()
Возвращает координату X конечной точки с двойной точностью.
abstract double getY1()
Возвращает координату Y начальной точки с двойной точностью.
abstract double getY2()
Возвращает координату Y конечной точки с двойной точностью.
boolean intersects(double x, double y, double w, double h)
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанной прямоугольной области.
boolean intersects(Rectangle2D r)
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанной Rectangle2D.
void setCurve(double[] coords, int offset)
Задаёт координаты конечных и контрольных точек этой кривой, используя значения типа double из указанного массива начиная с указанного смещения.
abstract void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
Задаёт координаты конечных и контрольных точек этой кривой указанными значениями типа double.
void setCurve(CubicCurve2D c)
Задаёт координаты конечных и контрольных точек этой кривой такими же, как у указанной CubicCurve2D.
void setCurve(Point2D[] pts, int offset)
Задаёт координаты конечных и контрольных точек этой кривой по координатам объектов Point2D, расположенных в указанном массиве начиная с указанного смещения.
void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)
Задаёт координаты конечных и контрольных точек этой кривой указанными координатами Point2D.
static int solveCubic(double[] eqn)
Решает кубическое уравнение, коэффициенты которого находятся в массиве eqn, записывает в этот же массив действительные корни и возвращает их количество.
static int solveCubic(double[] eqn, double[] res)
Решает кубическое уравнение, коэффициенты которого находятся в массиве eqn, записывает действительные корни в массив res и возвращает их количество.
static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
Разбивает кубическую кривую, заданную координатами, хранящимися в массиве src с индексов srcoff по (srcoff + 7), на две части и сохраняет полученные кривые в выходные массивы по соответствующим индексам.
void subdivide(CubicCurve2D left, CubicCurve2D right)
Разбивает эту кубическую кривую на две части и сохраняет полученные кривые в параметрах левой и правой кривых.
static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right)
Разбивает кубическую кривую, заданную параметром src, на две части и сохраняет полученные кривые в параметрах кривых left и right.

Методы, объявленные в классе Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

CubicCurve2D

protected CubicCurve2D()
Это абстрактный класс, который нельзя создать напрямую. Для создания доступны подклассы с реализацией для конкретных типов; они предоставляют несколько форматов хранения информации, необходимой для работы различных методов доступа, перечисленных ниже.
Начиная с версии:
1.2
См. также:
  • CubicCurve2D.Float
  • CubicCurve2D.Double

Подробное описание методов

getX1

public abstract double getX1()
Возвращает координату X начальной точки с двойной точностью.
Возвращает:
координату X начальной точки CubicCurve2D.
Начиная с версии:
1.2

getY1

public abstract double getY1()
Возвращает координату Y начальной точки с двойной точностью.
Возвращает:
координату Y начальной точки CubicCurve2D.
Начиная с версии:
1.2

getP1

public abstract Point2D getP1()
Возвращает начальную точку.
Возвращает:
объект Point2D, являющийся начальной точкой CubicCurve2D.
Начиная с версии:
1.2

getCtrlX1

public abstract double getCtrlX1()
Возвращает координату X первой контрольной точки с двойной точностью.
Возвращает:
координату X первой контрольной точки CubicCurve2D.
Начиная с версии:
1.2

getCtrlY1

public abstract double getCtrlY1()
Возвращает координату Y первой контрольной точки с двойной точностью.
Возвращает:
координату Y первой контрольной точки CubicCurve2D.
Начиная с версии:
1.2

getCtrlP1

public abstract Point2D getCtrlP1()
Возвращает первую контрольную точку.
Возвращает:
объект Point2D, являющийся первой контрольной точкой CubicCurve2D.
Начиная с версии:
1.2

getCtrlX2

public abstract double getCtrlX2()
Возвращает координату X второй контрольной точки с двойной точностью.
Возвращает:
координату X второй контрольной точки CubicCurve2D.
Начиная с версии:
1.2

getCtrlY2

public abstract double getCtrlY2()
Возвращает координату Y второй контрольной точки с двойной точностью.
Возвращает:
координату Y второй контрольной точки CubicCurve2D.
Начиная с версии:
1.2

getCtrlP2

public abstract Point2D getCtrlP2()
Возвращает вторую контрольную точку.
Возвращает:
объект Point2D, являющийся второй контрольной точкой CubicCurve2D.
Начиная с версии:
1.2

getX2

public abstract double getX2()
Возвращает координату X конечной точки с двойной точностью.
Возвращает:
координату X конечной точки CubicCurve2D.
Начиная с версии:
1.2

getY2

public abstract double getY2()
Возвращает координату Y конечной точки с двойной точностью.
Возвращает:
координату Y конечной точки CubicCurve2D.
Начиная с версии:
1.2

getP2

public abstract Point2D getP2()
Возвращает конечную точку.
Возвращает:
объект Point2D, являющийся конечной точкой CubicCurve2D.
Начиная с версии:
1.2

setCurve

public abstract void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
Задает координаты конечных и контрольных точек этой кривой указанными значениями типа double.
Параметры:
x1 — координата X, используемая для задания начальной точки этой CubicCurve2D
y1 — координата Y, используемая для задания начальной точки этой CubicCurve2D
ctrlx1 — координата X, используемая для задания первой контрольной точки этой CubicCurve2D
ctrly1 — координата Y, используемая для задания первой контрольной точки этой CubicCurve2D
ctrlx2 — координата X, используемая для задания второй контрольной точки этой CubicCurve2D
ctrly2 — координата Y, используемая для задания второй контрольной точки этой CubicCurve2D
x2 — координата X, используемая для задания конечной точки этой CubicCurve2D
y2 — координата Y, используемая для задания конечной точки этой CubicCurve2D
Начиная с версии:
1.2

setCurve

public void setCurve(double[] coords, int offset)
Задает координаты конечных и контрольных точек этой кривой значениями типа double, находящимися в указанном массиве по заданному смещению.
Параметры:
coords — массив double, содержащий координаты
offset — индекс coords, с которого начинается задание координат конечных и контрольных точек этой кривой значениями, содержащимися в coords
Начиная с версии:
1.2

setCurve

public void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)
Задает координаты конечных и контрольных точек этой кривой указанными координатами Point2D.
Параметры:
p1 — первая указанная точка Point2D, используемая для задания начальной точки этой кривой
cp1 — вторая указанная точка Point2D, используемая для задания первой контрольной точки этой кривой
cp2 — третья указанная точка Point2D, используемая для задания второй контрольной точки этой кривой
p2 — четвертая указанная точка Point2D, используемая для задания конечной точки этой кривой
Начиная с версии:
1.2

setCurve

public void setCurve(Point2D[] pts, int offset)
Задает координаты конечных и контрольных точек этой кривой координатами объектов Point2D, расположенных в указанном массиве по заданному смещению.
Параметры:
pts — массив объектов Point2D
offset — индекс pts, с которого начинается задание координат конечных и контрольных точек этой кривой точками, содержащимися в pts
Начиная с версии:
1.2

setCurve

public void setCurve(CubicCurve2D c)
Задает конечные и контрольные точки этой кривой такими же, как у указанной CubicCurve2D.
Параметры:
c — указанная CubicCurve2D
Начиная с версии:
1.2

getFlatnessSq

public static double getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
Возвращает квадрат плоскостности кубической кривой, заданной указанными контрольными точками. Плоскостность — это максимальное расстояние от контрольной точки до прямой, соединяющей конечные точки.
Параметры:
x1 — координата X, задающая начальную точку CubicCurve2D
y1 — координата Y, задающая начальную точку CubicCurve2D
ctrlx1 — координата X, задающая первую контрольную точку CubicCurve2D
ctrly1 — координата Y, задающая первую контрольную точку CubicCurve2D
ctrlx2 — координата X, задающая вторую контрольную точку CubicCurve2D
ctrly2 — координата Y, задающая вторую контрольную точку CubicCurve2D
x2 — координата X, задающая конечную точку CubicCurve2D
y2 — координата Y, задающая конечную точку CubicCurve2D
Возвращает:
квадрат плоскостности CubicCurve2D, заданной указанными координатами.
Начиная с версии:
1.2

getFlatness

public static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
Возвращает плоскостность кубической кривой, заданной указанными контрольными точками. Плоскостность — это максимальное расстояние от контрольной точки до прямой, соединяющей конечные точки.
Параметры:
x1 — координата X, задающая начальную точку CubicCurve2D
y1 — координата Y, задающая начальную точку CubicCurve2D
ctrlx1 — координата X, задающая первую контрольную точку CubicCurve2D
ctrly1 — координата Y, задающая первую контрольную точку CubicCurve2D
ctrlx2 — координата X, задающая вторую контрольную точку CubicCurve2D
ctrly2 — координата Y, задающая вторую контрольную точку CubicCurve2D
x2 — координата X, задающая конечную точку CubicCurve2D
y2 — координата Y, задающая конечную точку CubicCurve2D
Возвращает:
плоскостность CubicCurve2D, заданной указанными координатами.
Начиная с версии:
1.2

getFlatnessSq

public static double getFlatnessSq(double[] coords, int offset)
Возвращает квадрат плоскостности кубической кривой, заданной контрольными точками, сохраненными в указанном массиве начиная с заданного индекса. Плоскостность — это максимальное расстояние от контрольной точки до прямой, соединяющей конечные точки.
Параметры:
coords — массив, содержащий координаты
offset — индекс coords, с которого начинается получение конечных и контрольных точек кривой
Возвращает:
квадрат плоскостности CubicCurve2D, заданной координатами в coords по указанному смещению.
Начиная с версии:
1.2

getFlatness

public static double getFlatness(double[] coords, int offset)
Возвращает плоскостность кубической кривой, заданной контрольными точками, сохраненными в указанном массиве начиная с заданного индекса. Плоскостность — это максимальное расстояние от контрольной точки до прямой, соединяющей конечные точки.
Параметры:
coords — массив, содержащий координаты
offset — индекс coords, с которого начинается получение конечных и контрольных точек кривой
Возвращает:
плоскостность CubicCurve2D, заданной координатами в coords по указанному смещению.
Начиная с версии:
1.2

getFlatnessSq

public double getFlatnessSq()
Возвращает квадрат плоскостности этой кривой. Плоскостность — это максимальное расстояние от контрольной точки до прямой, соединяющей конечные точки.
Возвращает:
квадрат плоскостности этой кривой.
Начиная с версии:
1.2

getFlatness

public double getFlatness()
Возвращает плоскостность этой кривой. Плоскостность — это максимальное расстояние от контрольной точки до прямой, соединяющей конечные точки.
Возвращает:
плоскостность этой кривой.
Начиная с версии:
1.2

subdivide

public void subdivide(CubicCurve2D left, CubicCurve2D right)
Разбивает эту кубическую кривую на части и сохраняет полученные две кривые в параметрах левой и правой кривых. Левый и/или правый объект может совпадать с этим объектом или иметь значение null.
Параметры:
left — объект кубической кривой для сохранения левой, или первой, половины разбитой кривой
right — объект кубической кривой для сохранения правой, или второй, половины разбитой кривой
Начиная с версии:
1.2

subdivide

public static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right)
Разбивает кубическую кривую, указанную параметром src, и сохраняет полученные две кривые в параметрах кривых left и right. Объект left и/или right может совпадать с объектом src или иметь значение null.
Параметры:
src — кубическая кривая, которую нужно разбить
left — объект кубической кривой для сохранения левой, или первой, половины разбитой кривой
right — объект кубической кривой для сохранения правой, или второй, половины разбитой кривой
Начиная с версии:
1.2

subdivide

public static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
Разбивает кубическую кривую, координаты которой хранятся в массиве src с индексами от srcoff до (srcoff + 7), и сохраняет полученные две кривые в массивах результатов по соответствующим индексам. Массив left и/или right может иметь значение null или быть ссылкой на тот же массив, что и src. Обратите внимание, что последняя точка первой разбитой кривой совпадает с первой точкой второй разбитой кривой. Поэтому для left и right можно передать один и тот же массив и использовать смещения, например rightoff равное (leftoff + 6), чтобы не выделять дополнительную память для этой общей точки.
Параметры:
src — массив с координатами исходной кривой
srcoff — смещение в массиве, указывающее начало 6 исходных координат
left — массив для сохранения координат первой половины разбитой кривой
leftoff — смещение в массиве, указывающее начало 6 координат левой кривой
right — массив для сохранения координат второй половины разбитой кривой
rightoff — смещение в массиве, указывающее начало 6 координат правой кривой
Начиная с версии:
1.2

solveCubic

public static int solveCubic(double[] eqn)
Решает кубическое уравнение, коэффициенты которого находятся в массиве eqn, помещает действительные корни обратно в тот же массив и возвращает их количество. Решаемое кубическое уравнение представлено выражением:
    eqn = {c, b, a, d}
    dx^3 + ax^2 + bx + c = 0
Возвращаемое значение -1 используется, чтобы отличить постоянное уравнение, которое может быть всегда равно 0 или никогда не равняться 0, от уравнения, не имеющего корней.
Параметры:
eqn — массив, содержащий коэффициенты кубического уравнения
Возвращает:
количество корней или -1, если уравнение является постоянным.
Начиная с версии:
1.2

solveCubic

public static int solveCubic(double[] eqn, double[] res)
Решает кубическое уравнение, коэффициенты которого находятся в массиве eqn, помещает действительные корни в массив res и возвращает их количество. Решаемое кубическое уравнение представлено выражением: eqn = {c, b, a, d} dx^3 + ax^2 + bx + c = 0 Возвращаемое значение -1 используется, чтобы отличить постоянное уравнение, которое может быть всегда равно 0 или никогда не равняться 0, от уравнения, не имеющего корней.
Параметры:
eqn — указанный массив коэффициентов, используемый для решения кубического уравнения
res — массив, содержащий действительные корни, полученные в результате решения кубического уравнения
Возвращает:
количество корней или -1, если уравнение является постоянным
Начиная с версии:
1.3

contains

public boolean contains(double x, double y)
Проверяет, находятся ли указанные координаты внутри границы Shape согласно определению принадлежности внутренней области.
Определено в:
contains в интерфейсе Shape
Параметры:
x — указанная координата X для проверки
y — указанная координата Y для проверки
Возвращает:
true, если указанные координаты находятся внутри границы Shape; в противном случае — false.
Начиная с версии:
1.2

contains

public boolean contains(Point2D p)
Проверяет, находится ли указанная точка Point2D внутри границы Shape согласно определению принадлежности внутренней области.
Определено в:
contains в интерфейсе Shape
Параметры:
p — указанная точка Point2D для проверки
Возвращает:
true, если указанная точка Point2D находится внутри границы 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, поэтому его можно использовать, если требуется более точный результат.
Определено в:
intersects в интерфейсе Shape
Параметры:
x — координата X верхнего левого угла указанной прямоугольной области
y — координата Y верхнего левого угла указанной прямоугольной области
w — ширина указанной прямоугольной области
h — высота указанной прямоугольной области
Возвращает:
true, если внутренняя область Shape пересекается с внутренней областью прямоугольной области либо существует высокая вероятность их пересечения, а вычисления пересечения слишком затратны; в противном случае — false.
Начиная с версии:
1.2
См. также:
  • Area

intersects

public boolean intersects(Rectangle2D r)
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанного объекта Rectangle2D. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true в следующих случаях:
  • существует высокая вероятность пересечения Rectangle2D и Shape, но
  • точные вычисления этого пересечения требуют чрезмерно больших ресурсов.
Это означает, что для некоторых Shapes этот метод может вернуть true, даже если Rectangle2D не пересекается с Shape. Класс Area выполняет более точные вычисления геометрических пересечений, чем большинство объектов Shape, поэтому его можно использовать, если требуется более точный результат.
Определено в:
intersects в интерфейсе Shape
Параметры:
r — указанный объект Rectangle2D
Возвращает:
true, если внутренняя область Shape пересекается с внутренней областью указанного объекта Rectangle2D либо существует высокая вероятность их пересечения, а вычисления пересечения слишком затратны; в противном случае — false.
Начиная с версии:
1.2
См. также:
  • Shape.intersects(double, double, double, double)

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, поэтому его можно использовать, если требуется более точный результат.
Определено в:
contains в интерфейсе Shape
Параметры:
x — координата X верхнего левого угла указанной прямоугольной области
y — координата Y верхнего левого угла указанной прямоугольной области
w — ширина указанной прямоугольной области
h — высота указанной прямоугольной области
Возвращает:
true, если внутренняя область Shape полностью содержит указанную прямоугольную область; в противном случае — false либо, если Shape содержит прямоугольную область, метод intersects возвращает true, а вычисления принадлежности требуют чрезмерно больших ресурсов.
Начиная с версии:
1.2
См. также:
  • Area
  • Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)
Проверяет, полностью ли внутренняя область Shape содержит указанный объект Rectangle2D. Метод Shape.contains() позволяет реализации Shape консервативно возвращать false в следующих случаях:
  • метод intersect возвращает true и
  • вычисления, необходимые для определения того, содержит ли Shape объект Rectangle2D полностью, требуют чрезмерно больших ресурсов.
Это означает, что для некоторых Shapes этот метод может вернуть false, даже если Shape содержит Rectangle2D. Класс Area выполняет более точные геометрические вычисления, чем большинство объектов Shape, поэтому его можно использовать, если требуется более точный результат.
Определено в:
contains в интерфейсе Shape
Параметры:
r — указанный объект Rectangle2D
Возвращает:
true, если внутренняя область Shape полностью содержит Rectangle2D; в противном случае — false либо, если Shape содержит Rectangle2D, метод intersects возвращает true, а вычисления принадлежности требуют чрезмерно больших ресурсов.
Начиная с версии:
1.2
См. также:
  • Shape.contains(double, double, double, double)

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)

Определено в:
getBounds2D в интерфейсе Shape
Возвращает:
экземпляр Rectangle2D, представляющий собой ограничивающий прямоугольник Shape с высокой точностью.
С версии:
1.2
См. также:
  • Shape.getBounds()

getBounds

public Rectangle getBounds()
Возвращает целочисленный объект Rectangle, полностью охватывающий Shape. Обратите внимание, что нет гарантии, что возвращённый Rectangle является наименьшим ограничивающим прямоугольником, содержащим Shape; гарантируется лишь, что Shape целиком находится внутри указанного Rectangle. Возвращённый Rectangle также может не полностью охватывать Shape, если Shape выходит за ограниченный диапазон целочисленного типа данных. Метод getBounds2D обычно возвращает более тесный ограничивающий прямоугольник благодаря большей гибкости представления.

Обратите внимание, что определение принадлежности внутренней области может приводить к ситуациям, когда точки на определяющем контуре shape могут не считаться содержащимися в возвращённом объекте bounds, но только в случаях, когда эти точки также не считаются содержащимися в исходном shape.

Если point находится внутри shape согласно методу contains(point), то он должен находиться внутри возвращённого объекта ограничивающих границ Rectangle согласно методу contains(point) объекта bounds. В частности:

shape.contains(x,y) требует bounds.contains(x,y)

Если point не находится внутри shape, он всё же может содержаться в объекте bounds:

bounds.contains(x,y) не подразумевает shape.contains(x,y)

Определено в:
getBounds в интерфейсе Shape
Возвращает:
целочисленный Rectangle, полностью охватывающий Shape.
С версии:
1.2
См. также:
  • Shape.getBounds2D()

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
Возвращает объект-итератор, определяющий границу фигуры. Итератор этого класса не является потокобезопасным: это означает, что класс CubicCurve2D не гарантирует, что изменения геометрии объекта CubicCurve2D не повлияют на уже выполняющиеся итерации этой геометрии.
Определено в:
getPathIterator в интерфейсе Shape
Параметры:
at — необязательный AffineTransform, применяемый к координатам при их возврате в ходе итерации, или null, если нужны координаты без преобразования
Возвращает:
объект PathIterator, который возвращает геометрию контура этой CubicCurve2D по одному сегменту за раз.
С версии:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at, double flatness)
Возвращает объект-итератор, определяющий границу упрощённой фигуры. Итератор этого класса не является потокобезопасным: это означает, что класс CubicCurve2D не гарантирует, что изменения геометрии объекта CubicCurve2D не повлияют на уже выполняющиеся итерации этой геометрии.
Определено в:
getPathIterator в интерфейсе Shape
Параметры:
at — необязательный AffineTransform, применяемый к координатам при их возврате в ходе итерации, или null, если нужны координаты без преобразования
flatness — максимальное отклонение контрольных точек заданной кривой от коллинеарности, при превышении которого кривая после разбиения заменяется прямой линией, соединяющей конечные точки
Возвращает:
объект PathIterator, который возвращает геометрию контура этой CubicCurve2D по одному сегменту за раз.
С версии:
1.2

clone

public Object clone()
Создаёт новый объект того же класса, что и этот объект.
Переопределяет:
clone в классе Object
Возвращает:
копию этого экземпляра.
Выбрасывает:
OutOfMemoryError — если недостаточно памяти.
С версии:
1.2
См. также:
  • Cloneable

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/CubicCurve2D.html

Spec-Zone.ru

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