Класс 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. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает значение хеш-кода этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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.
Если согласно методу contains(point) точка point находится внутри shape, то согласно методу contains(point) объекта bounds она должна находиться внутри возвращаемого ограничивающего прямоугольника Rectangle2D. В частности:
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.