Класс 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()
- С момента:
- 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 на координаты в указанном массиве по указанному смещению.- Параметры:
-
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, и поэтому может использоваться, если требуется более точный ответ.- Specified by:
-
intersectsв интерфейсеShape - Parameters:
-
r- заданныйRectangle2D - Returns:
-
true, если внутренние областиShapeи заданногоRectangle2Dпересекаются или обе, скорее всего, пересекаются, а вычисления пересечения слишком дорогостоящи;falseв противном случае. - Since:
- 1.2
- See Also:
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)
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
clone
public Object clone()
- Overrides:
-
cloneв классеObject - Returns:
- клонированный экземпляр.
- Throws:
-
OutOfMemoryError- если памяти недостаточно. - Since:
- 1.2
- See Also:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/geom/QuadCurve2D.html