Класс 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. |
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. |
Методы, объявленные в классе java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе java.awt.Shape
getBounds2D
Подробное описание конструкторов
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
решитьКвадратноеУравнение
public static int solveQuadratic(double[] eqn)
eqn, и помещает действительные корни обратно в тот же массив, возвращая количество корней. Решаемое квадратное уравнение представлено уравнением:
eqn = {C, B, A};
ax^2 + bx + c = 0
Значение -1 используется для различения константного уравнения, которое может быть всегда 0 или никогда не 0, от уравнения, у которого нет нулей.- Параметры:
-
eqn- массив, содержащий коэффициенты квадратного уравнения - Возвращает:
- количество корней или
-1если уравнение является константой - С тех пор:
- 1.2
решитьКвадратноеУравнение
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
содержит
public boolean contains(double x, double y)
Shape, как описано в определении внутренности.- Определено в:
-
containsв интерфейсеShape - Параметры:
-
x- указанная координата X для проверки -
y- указанная координата Y для проверки - Возвращает:
-
trueесли указанные координаты находятся внутри границыShape;falseв противном случае. - С тех пор:
- 1.2
содержит
public boolean contains(Point2D p)
Point2D внутри границы Shape, как описано в определении внутренности.- Определено в:
-
containsв интерфейсеShape - Параметры:
-
p- указаннаяPoint2Dдля проверки - Возвращает:
-
trueесли указаннаяPoint2Dнаходится внутри границыShape;falseв противном случае. - С тех пор:
- 1.2
пересекается
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
- См. также:
пересекается
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:
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
clone
public Object clone()
- Overrides:
-
cloneв классеObject - Returns:
- клонированный экземпляр.
- Throws:
-
OutOfMemoryError- если памяти недостаточно. - Since:
- 1.2
- See Also:
© 1993, 2021, 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/17/docs/api/java.desktop/java/awt/geom/QuadCurve2D.html