Класс QuadCurve2D
- Все реализуемые интерфейсы:
Shape, Cloneable
- Известные прямые подклассы:
QuadCurve2D.Double, QuadCurve2D.Float
public abstract class QuadCurve2D extends Object implements Shape, Cloneable
QuadCurve2D определяет сегмент квадратичной параметрической кривой в координатном пространстве (x,y). Этот класс является лишь абстрактным суперклассом для всех объектов, хранящих сегмент двумерной квадратичной кривой. Представление координат в хранилище определяется подклассом.
- Начиная с версии:
- 1.2
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
QuadCurve2D.Double |
Сегмент квадратичной параметрической кривой, заданный координатами double. |
static class |
QuadCurve2D.Float |
Сегмент квадратичной параметрической кривой, заданный координатами float. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Это абстрактный класс, экземпляр которого нельзя создать напрямую. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создает новый объект того же класса с тем же содержимым, что и у этого объекта. |
boolean |
contains |
Проверяет, находятся ли указанные координаты внутри границы Shape, согласно определению принадлежности внутренней области. |
boolean |
contains |
Проверяет, полностью ли внутренняя область Shape содержит указанную прямоугольную область. |
boolean |
contains |
Проверяет, находится ли указанная точка Point2D внутри границы Shape, согласно определению принадлежности внутренней области. |
boolean |
contains |
Проверяет, полностью ли внутренняя область Shape содержит указанный Rectangle2D. |
Rectangle |
getBounds() |
Возвращает целочисленный Rectangle, полностью охватывающий Shape. |
Rectangle2D |
getBounds2D() |
Возвращает более точную ограничивающую рамку Shape, чем метод getBounds. |
abstract Point2D |
getCtrlPt() |
Возвращает контрольную точку. |
abstract double |
getCtrlX() |
Возвращает X-координату контрольной точки с точностью double. |
abstract double |
getCtrlY() |
Возвращает Y-координату контрольной точки с точностью double. |
double |
getFlatness() |
Возвращает плоскостность этого QuadCurve2D, то есть максимальное расстояние контрольной точки от прямой, соединяющей конечные точки. |
static double |
getFlatness |
Возвращает плоскостность квадратичной кривой, заданной контрольными точками, хранящимися в указанном массиве по указанному индексу, то есть максимальное расстояние контрольной точки от прямой, соединяющей конечные точки. |
static double |
getFlatness |
Возвращает плоскостность квадратичной кривой, заданной указанными контрольными точками, то есть максимальное расстояние контрольной точки от прямой, соединяющей конечные точки. |
double |
getFlatnessSq() |
Возвращает квадрат плоскостности этого QuadCurve2D, то есть квадрат максимального расстояния контрольной точки от прямой, соединяющей конечные точки. |
static double |
getFlatnessSq |
Возвращает квадрат плоскостности квадратичной кривой, заданной контрольными точками, хранящимися в указанном массиве по указанному индексу, то есть квадрат максимального расстояния контрольной точки от прямой, соединяющей конечные точки. |
static double |
getFlatnessSq |
Возвращает квадрат плоскостности квадратичной кривой, заданной указанными контрольными точками, то есть квадрат максимального расстояния контрольной точки от прямой, соединяющей конечные точки. |
abstract Point2D |
getP1() |
Возвращает начальную точку. |
abstract Point2D |
getP2() |
Возвращает конечную точку. |
PathIterator |
getPathIterator |
Возвращает объект-итератор, определяющий границу фигуры этого QuadCurve2D. |
PathIterator |
getPathIterator |
Возвращает объект-итератор, определяющий границу уплощенной фигуры этого QuadCurve2D. |
abstract double |
getX1() |
Возвращает X-координату начальной точки с точностью double. |
abstract double |
getX2() |
Возвращает X-координату конечной точки с точностью double. |
abstract double |
getY1() |
Возвращает Y-координату начальной точки с точностью double. |
abstract double |
getY2() |
Возвращает Y-координату конечной точки с точностью double. |
boolean |
intersects |
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанной прямоугольной области. |
boolean |
intersects |
Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанного Rectangle2D. |
void |
setCurve |
Задает координаты конечных точек и контрольных точек этого QuadCurve2D значениями координат double по указанному смещению в указанном массиве. |
abstract void |
setCurve |
Задает координаты конечных точек и контрольной точки этой кривой указанными координатами double. |
void |
setCurve |
Задает координаты конечных точек и контрольных точек этого QuadCurve2D координатами объектов Point2D по указанному смещению в указанном массиве. |
void |
setCurve |
Задает координаты конечных точек и контрольной точки этого QuadCurve2D указанными координатами Point2D. |
void |
setCurve |
Задает координаты конечных точек и контрольной точки этого QuadCurve2D такими же, как в указанном QuadCurve2D. |
static int |
solveQuadratic |
Решает квадратное уравнение, коэффициенты которого находятся в массиве eqn, записывает действительные корни обратно в тот же массив и возвращает количество корней. |
static int |
solveQuadratic |
Решает квадратное уравнение, коэффициенты которого находятся в массиве eqn, записывает действительные корни в массив res и возвращает количество корней. |
static void |
subdivide |
Разбивает квадратичную кривую, заданную координатами, хранящимися в массиве src с индексов srcoff по srcoff + 5, и сохраняет полученные две части кривой в двух результирующих массивах по соответствующим индексам. |
void |
subdivide |
Разбивает этот QuadCurve2D и сохраняет полученные две части кривой в параметрах кривых left и right. |
static void |
subdivide |
Разбивает квадратичную кривую, заданную параметром src, и сохраняет полученные две части кривой в параметрах кривых left и right. |
Подробное описание конструкторов
QuadCurve2D
protected QuadCurve2D()
- Начиная с:
- 1.2
- См. также:
Подробное описание методов
getX1
public abstract double getX1()
double.- Возвращает:
- координату X начальной точки.
- Начиная с:
- 1.2
getY1
public abstract double getY1()
double.- Возвращает:
- координату Y начальной точки.
- Начиная с:
- 1.2
getP1
public abstract Point2D getP1()
- Возвращает:
- объект
Point2D, представляющий начальную точку этогоQuadCurve2D. - Начиная с:
- 1.2
getCtrlX
public abstract double getCtrlX()
double.- Возвращает:
- координату X контрольной точки
- Начиная с:
- 1.2
getCtrlY
public abstract double getCtrlY()
double.- Возвращает:
- координату Y контрольной точки.
- Начиная с:
- 1.2
getCtrlPt
public abstract Point2D getCtrlPt()
- Возвращает:
- объект
Point2D, представляющий контрольную точку этойPoint2D. - Начиная с:
- 1.2
getX2
public abstract double getX2()
double.- Возвращает:
- координату x конечной точки.
- Начиная с:
- 1.2
getY2
public abstract double getY2()
double.- Возвращает:
- координату Y конечной точки.
- Начиная с:
- 1.2
getP2
public abstract Point2D getP2()
- Возвращает:
- объект
Point, представляющий конечную точку этойPoint2D. - Начиная с:
- 1.2
setCurve
public abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
double.- Параметры:
-
x1— координата X начальной точки -
y1— координата Y начальной точки -
ctrlx— координата X контрольной точки -
ctrly— координата Y контрольной точки -
x2— координата X конечной точки -
y2— координата Y конечной точки - Начиная с:
- 1.2
setCurve
public void setCurve(double[] coords, int offset)
QuadCurve2D координатами типа double, расположенными по указанному смещению в заданном массиве.- Параметры:
-
coords— массив, содержащий значения координат -
offset— индекс массива, с которого следует начать получение значений координат и присвоение их этойQuadCurve2D - Начиная с:
- 1.2
setCurve
public void setCurve(Point2D p1, Point2D cp, Point2D p2)
QuadCurve2D указанными координатами типа Point2D.- Параметры:
-
p1— начальная точка -
cp— контрольная точка -
p2— конечная точка - Начиная с:
- 1.2
setCurve
public void setCurve(Point2D[] pts, int offset)
QuadCurve2D координатами объектов Point2D, расположенных по указанному смещению в заданном массиве.- Параметры:
-
pts— массив, содержащийPoint2D, задающие значения координат -
offset— индекс вpts, с которого следует начать получение значений координат и присвоение их этойQuadCurve2D - Начиная с:
- 1.2
setCurve
public void setCurve(QuadCurve2D c)
QuadCurve2D таким же, как у указанной QuadCurve2D.- Параметры:
-
c— указаннаяQuadCurve2D - Начиная с:
- 1.2
getFlatnessSq
public static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
- Параметры:
-
x1— координата X начальной точки -
y1— координата Y начальной точки -
ctrlx— координата X контрольной точки -
ctrly— координата Y контрольной точки -
x2— координата X конечной точки -
y2— координата Y конечной точки - Возвращает:
- квадрат плоскостности квадратичной кривой, заданной указанными координатами.
- Начиная с:
- 1.2
getFlatness
public static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
- Параметры:
-
x1— координата X начальной точки -
y1— координата Y начальной точки -
ctrlx— координата X контрольной точки -
ctrly— координата Y контрольной точки -
x2— координата X конечной точки -
y2— координата Y конечной точки - Возвращает:
- плоскостность квадратичной кривой, заданной указанными координатами.
- Начиная с:
- 1.2
getFlatnessSq
public static double getFlatnessSq(double[] coords, int offset)
- Параметры:
-
coords— массив, содержащий значения координат -
offset— индекс вcoords, с которого следует начать получение значений из массива - Возвращает:
- плоскостность квадратичной кривой, заданной значениями в указанном массиве по указанному индексу.
- Начиная с:
- 1.2
getFlatness
public static double getFlatness(double[] coords, int offset)
- Параметры:
-
coords— массив, содержащий значения координат -
offset— индекс вcoords, с которого следует начать получение значений координат - Возвращает:
- плоскостность квадратичной кривой, заданной указанным массивом и смещением.
- Начиная с:
- 1.2
getFlatnessSq
public double getFlatnessSq()
QuadCurve2D.- Возвращает:
- квадрат плоскостности этой
QuadCurve2D. - Начиная с:
- 1.2
getFlatness
public double getFlatness()
QuadCurve2D.- Возвращает:
- плоскостность этой
QuadCurve2D. - Начиная с:
- 1.2
subdivide
public void subdivide(QuadCurve2D left, QuadCurve2D right)
QuadCurve2D на части и сохраняет полученные две кривые в параметрах кривых left и right. Один или оба объекта left и right могут совпадать с этой QuadCurve2D или null.- Параметры:
-
left— объектQuadCurve2Dдля сохранения левой, или первой, половины разделенной кривой -
right— объектQuadCurve2Dдля сохранения правой, или второй, половины разделенной кривой - Начиная с:
- 1.2
subdivide
public static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)
src, на части и сохраняет полученные две кривые в параметрах кривых left и right. Один или оба объекта left и right могут совпадать с объектом src или null.- Параметры:
-
src— квадратичная кривая, которую нужно разбить -
left— объектQuadCurve2Dдля сохранения левой, или первой, половины разделенной кривой -
right— объектQuadCurve2Dдля сохранения правой, или второй, половины разделенной кривой - Начиная с:
- 1.2
subdivide
public static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
src с индексами от srcoff до srcoff + 5, и сохраняет полученные две кривые в массивах результатов по соответствующим индексам. Один или оба массива left и right могут быть равны null или ссылаться на тот же массив и смещение, что и массив src. Обратите внимание, что последняя точка первой разделенной кривой совпадает с первой точкой второй разделенной кривой. Поэтому можно передать один и тот же массив для left и right и задать смещения так, чтобы rightoff равнялось leftoff + 4, избежав выделения дополнительной памяти для этой общей точки.- Параметры:
-
src— массив с координатами исходной кривой -
srcoff— смещение в массиве, указывающее начало 6 исходных координат -
left— массив для сохранения координат первой половины разделенной кривой -
leftoff— смещение в массиве, указывающее начало 6 координат левой части -
right— массив для сохранения координат второй половины разделенной кривой -
rightoff— смещение в массиве, указывающее начало 6 координат правой части - Начиная с:
- 1.2
solveQuadratic
public static int solveQuadratic(double[] eqn)
eqn, помещает действительные корни обратно в тот же массив и возвращает количество корней. Решаемое квадратное уравнение представлено выражением:
eqn = {C, B, A};
ax^2 + bx + c = 0
Возвращаемое значение -1 используется для отличия постоянного уравнения, которое может быть всегда равно 0 или никогда не равняться 0, от уравнения, не имеющего корней.- Параметры:
-
eqn— массив, содержащий коэффициенты квадратного уравнения - Возвращает:
- количество корней или
-1, если уравнение является постоянным - Начиная с:
- 1.2
solveQuadratic
public static int solveQuadratic(double[] eqn, double[] res)
eqn, помещает действительные корни в массив res и возвращает количество корней. Решаемое квадратное уравнение представлено выражением:
eqn = {C, B, A};
ax^2 + bx + c = 0
Возвращаемое значение -1 используется для отличия постоянного уравнения, которое может быть всегда равно 0 или никогда не равняться 0, от уравнения, не имеющего корней.- Параметры:
-
eqn— указанный массив коэффициентов, используемый для решения квадратного уравнения -
res— массив, содержащий действительные корни, полученные в результате решения квадратного уравнения - Возвращает:
- количество корней или
-1, если уравнение является постоянным. - Начиная с:
- 1.3
contains
public boolean contains(double x, double y)
Shape согласно определению принадлежности внутренней области.contains
public boolean contains(Point2D p)
Point2D внутри границы Shape согласно определению принадлежности внутренней области.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
- См. также:
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
- См. также:
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
- См. также:
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
- См. также:
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
- См. также:
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)
getPathIterator
public PathIterator getPathIterator(AffineTransform at)
QuadCurve2D. Итератор этого класса не является потокобезопасным, то есть этот класс QuadCurve2D не гарантирует, что изменения геометрии объекта QuadCurve2D не повлияют на уже выполняющиеся итерации этой геометрии.- Определён в:
-
getPathIteratorв интерфейсеShape - Параметры:
-
at— необязательныйAffineTransform, применяемый к границе фигуры - Возвращает:
- объект
PathIterator, задающий границу фигуры. - С версии:
- 1.2
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
QuadCurve2D. Итератор этого класса не является потокобезопасным, то есть этот класс QuadCurve2D не гарантирует, что изменения геометрии объекта QuadCurve2D не повлияют на уже выполняющиеся итерации этой геометрии.- Определён в:
-
getPathIteratorв интерфейсеShape - Параметры:
-
at— необязательныйAffineTransform, применяемый к границе фигуры -
flatness— максимальное расстояние от контрольных точек разбиваемой кривой до прямой, соединяющей конечные точки этой кривой, при превышении которого кривая заменяется прямой, соединяющей её конечные точки. - Возвращает:
- объект
PathIterator, задающий аппроксимированную границу фигуры. - С версии:
- 1.2
clone
public Object clone()
- Переопределяет:
-
cloneв классеObject - Возвращает:
- копию этого экземпляра.
- Вызывает исключение:
-
OutOfMemoryError— если недостаточно памяти. - С версии:
- 1.2
- См. также:
© 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/QuadCurve2D.html