Класс QuadCurve2D
- Все реализованные интерфейсы:
-
Shape,Cloneable
- Прямые известные подклассы:
-
QuadCurve2D.Double,QuadCurve2D.Float
public abstract class QuadCurve2D extends Object implements Shape, Cloneable
QuadCurve2D определяет отрезок квадратной параметрической кривой в (x,y) пространстве координат. Этот класс является только абстрактным суперклассом для всех объектов, хранящих отрезок квадратной 2D кривой. Фактическое представление хранения координат оставлено подклассу.
- С:
- 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()
- Since:
- 1.2
- См. также:
Подробное описание методов
getX1
public abstract double getX1()
double.- Возвращает:
- координату X начальной точки.
- Since:
- 1.2
getY1
public abstract double getY1()
double.- Возвращает:
- координату Y начальной точки.
- Since:
- 1.2
getP1
public abstract Point2D getP1()
- Возвращает:
- объект
Point2D, который является начальной точкой этой кривойQuadCurve2D. - Since:
- 1.2
getCtrlX
public abstract double getCtrlX()
double.- Возвращает:
- координату X контрольной точки
- Since:
- 1.2
getCtrlY
public abstract double getCtrlY()
double.- Возвращает:
- координату Y контрольной точки.
- Since:
- 1.2
getCtrlPt
public abstract Point2D getCtrlPt()
- Возвращает:
- объект
Point2D, который является контрольной точкой этой кривойPoint2D. - Since:
- 1.2
getX2
public abstract double getX2()
double.- Возвращает:
- координату X конечной точки.
- Since:
- 1.2
getY2
public abstract double getY2()
double.- Возвращает:
- координату Y конечной точки.
- Since:
- 1.2
getP2
public abstract Point2D getP2()
- Возвращает:
- объект
Point, который является конечной точкой этой кривойPoint2D. - Since:
- 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 конечной точки - Since:
- 1.2
setCurve
public void setCurve(double[] coords, int offset)
QuadCurve2D в координаты double по указанному смещению в указанном массиве.- Параметры:
-
coords- массив, содержащий координатные значения -
offset- индекс в массиве, с которого начинать получение координатных значений и назначение их этой кривойQuadCurve2D - Since:
- 1.2
setCurve
public void setCurve(Point2D p1, Point2D cp, Point2D p2)
QuadCurve2D в указанные координаты Point2D.- Параметры:
-
p1- начальная точка -
cp- контрольная точка -
p2- конечная точка - Since:
- 1.2
setCurve
public void setCurve(Point2D[] pts, int offset)
QuadCurve2D в координаты объектов Point2D по указанному смещению в указанном массиве.- Параметры:
-
pts- массив, содержащий объектыPoint2D, определяющие координатные значения -
offset- индекс в массивеpts, с которого начинать получение координатных значений и назначение их этой кривойQuadCurve2D - Since:
- 1.2
setCurve
public void setCurve(QuadCurve2D c)
QuadCurve2D такими же, как в указанной кривой QuadCurve2D.- Параметры:
-
c- указанная криваяQuadCurve2D - Since:
- 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 конечной точки - Возвращает:
- квадрат отклонения квадратной кривой, определенной заданными координатами.
- Since:
- 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 конечной точки - Возвращает:
- отклонение квадратной кривой, определенной заданными координатами.
- Since:
- 1.2
getFlatnessSq
public static double getFlatnessSq(double[] coords, int offset)
- Параметры:
-
coords- массив, содержащий координатные значения -
offset- индекс вcoords, с которого начинать получение значений из массива - Возвращает:
- квадрат отклонения квадратной кривой, определенной значениями в указанном массиве по указанному индексу.
- Since:
- 1.2
getFlatness
public static double getFlatness(double[] coords, int offset)
- Параметры:
-
coords- массив, содержащий координатные значения -
offset- индекс вcoords, с которого начинать получение координатных значений - Возвращает:
- отклонение квадратной кривой, определенной заданным массивом по указанному смещению.
- Since:
- 1.2
getFlatnessSq
public double getFlatnessSq()
QuadCurve2D.- Возвращает:
- квадрат отклонения этой кривой
QuadCurve2D. - Since:
- 1.2
getFlatness
public double getFlatness()
QuadCurve2D.- Возвращает:
- отклонение этой кривой
QuadCurve2D. - Since:
- 1.2
Разделить
public void subdivide(QuadCurve2D left, QuadCurve2D right)
QuadCurve2D и сохраняет полученные две разделенные кривые в параметры кривых left и right. Любой или оба объекта left и right могут быть такими же, как и этот объект QuadCurve2D или null. - Параметры:
-
left- объектQuadCurve2Dдля хранения левой или первой половины разделенной кривой -
right- объектQuadCurve2Dдля хранения правой или второй половины разделенной кривой - С:
- 1.2
Разделить
public static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)
src, и сохраняет полученные две разделенные кривые в параметрах кривых left и right. Любой или оба объекта left и right могут быть такими же, как объект src или null. - Параметры:
-
src- квадратная кривая, подлежащая разделению -
left- объектQuadCurve2Dдля хранения левой или первой половины разделенной кривой -
right- объектQuadCurve2Dдля хранения правой или второй половины разделенной кривой - С:
- 1.2
Разделить
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в интерфейсе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
- См. также:
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 и поэтому может быть использован, если требуется более точный ответ.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
x- координата X верхнего левого угла указанной прямоугольной области -
y- координата Y верхнего левого угла указанной прямоугольной области -
w- ширина указанной прямоугольной области -
h- высота указанной прямоугольной области - Returns:
-
trueесли внутренняя областьShapeполностью содержит указанную прямоугольную область;falseв противном случае или еслиShapeсодержит прямоугольную область, и методintersectsвозвращаетtrue, а вычисления включения слишком трудоёмки. - Since:
- 1.2
- See Also:
contains
public boolean contains(Rectangle2D r)
Shape содержит указанный Rectangle2D. Метод Shape.contains() позволяет реализации Shape консервативно возвращать false в следующих случаях: - метод
intersectвозвращаетtrueи - вычисления, определяющие, содержит ли
ShapeполностьюRectangle2D, слишком трудоёмки.
Shapes этот метод может возвращать false , даже если Shape содержит Rectangle2D. Класс Area выполняет более точные геометрические вычисления, чем большинство объектов Shape и поэтому может быть использован, если требуется более точный ответ.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
r- УказанныйRectangle2D - Returns:
-
trueесли внутренняя областьShapeполностью содержитRectangle2D;falseв противном случае или еслиShapeсодержитRectangle2D, и методintersectsвозвращаетtrue, а вычисления включения слишком трудоёмки. - Since:
- 1.2
- See Also:
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)
- Specified by:
-
getBounds2Dв интерфейсеShape - Returns:
- экземпляр
Rectangle2D, который является высокоточным ограничивающим прямоугольникомShape. - Since:
- 1.2
- See Also:
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)
- Specified by:
-
getBoundsв интерфейсеShape - Returns:
- целочисленный прямоугольник
Rectangle, который полностью охватываетShape. - Since:
- 1.2
- See Also:
getPathIterator
public PathIterator getPathIterator(AffineTransform at)
QuadCurve2D. Итератор для этого класса не является безопасным для многопоточных операций, что означает, что этот класс QuadCurve2D не гарантирует, что изменения в геометрии этого объекта QuadCurve2D не повлияют на уже выполняющиеся итерации этой геометрии.- Specified by:
-
getPathIteratorв интерфейсеShape - Parameters:
-
at- необязательнаяAffineTransformдля применения к границе формы - Returns:
- объект
PathIterator, определяющий границу формы. - Since:
- 1.2
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
QuadCurve2D. Итератор для этого класса не является безопасным для многопоточных операций, что означает, что этот класс QuadCurve2D не гарантирует, что изменения в геометрии этого объекта QuadCurve2D не повлияют на уже выполняющиеся итерации этой геометрии.- Specified by:
-
getPathIteratorв интерфейсеShape - Parameters:
-
at- необязательныйAffineTransformдля применения к границе формы -
flatness- максимальное расстояние, на котором точки управления для разбитой кривой могут находиться относительно прямой, соединяющей конечные точки этой кривой, прежде чем эта кривая будет заменена прямой линией, соединяющей конечные точки. - Returns:
- объект
PathIterator, определяющий сглаженную границу формы. - Since:
- 1.2
клонировать
public Object clone()
- Переопределяет:
-
cloneв классеObject - Возвращает:
- клонированный экземпляр.
- Использует:
-
OutOfMemoryError- если памяти недостаточно. - С:
- 1.2
- См. также:
© 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/QuadCurve2D.html