Класс QuadCurve2D
- java.lang.Object
-
- java.awt.geom.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 | Сегмент квадратичной параметрической кривой, заданный координатами |
static class | QuadCurve2D.Float | Сегмент квадратичной параметрической кривой, заданный координатами |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | QuadCurve2D() | Этот абстрактный класс не может быть инстанцирован напрямую. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object | clone() | Создает новый объект того же класса с тем же содержимым, что и этот объект. |
boolean | contains(double x,
double y) | Проверяет, находятся ли указанные координаты внутри границы |
boolean | contains(double x,
double y,
double w,
double h) | Проверяет, полностью ли внутренняя область |
boolean | contains(Point2D p) | Проверяет, находится ли указанная |
boolean | contains(Rectangle2D r) | Проверяет, полностью ли внутренняя область |
Rectangle | getBounds() | Возвращает целое число |
abstract Point2D | getCtrlPt() | Возвращает точку управления. |
abstract double | getCtrlX() | Возвращает координату X точки управления с точностью |
abstract double | getCtrlY() | Возвращает координату Y точки управления с точностью |
double | getFlatness() | Возвращает отклонение (или максимальное расстояние точки управления от линии, соединяющей конечные точки) этого |
static double | getFlatness(double[] coords,
int offset) | Возвращает отклонение (или максимальное расстояние точки управления от линии, соединяющей конечные точки) квадратичной кривой, заданной точками управления, хранящимися в указанном массиве по указанному индексу. |
static double | getFlatness(double x1,
double y1,
double ctrlx,
double ctrly,
double x2,
double y2) | Возвращает отклонение (или максимальное расстояние точки управления от линии, соединяющей конечные точки) квадратичной кривой, заданной указанными точками управления. |
double | getFlatnessSq() | Возвращает квадрат отклонения (или максимальное расстояние точки управления от линии, соединяющей конечные точки) этого |
static double | getFlatnessSq(double[] coords,
int offset) | Возвращает квадрат отклонения (или максимальное расстояние точки управления от линии, соединяющей конечные точки) квадратичной кривой, заданной точками управления, хранящимися в указанном массиве по указанному индексу. |
static double | getFlatnessSq(double x1,
double y1,
double ctrlx,
double ctrly,
double x2,
double y2) | Возвращает квадрат отклонения (или максимальное расстояние точки управления от линии, соединяющей конечные точки) квадратичной кривой, заданной указанными точками управления. |
abstract Point2D | getP1() | Возвращает начальную точку. |
abstract Point2D | getP2() | Возвращает конечную точку. |
PathIterator | getPathIterator(AffineTransform at) | Возвращает объект итерации, определяющий границу формы этого |
PathIterator | getPathIterator(AffineTransform at,
double flatness) | Возвращает объект итерации, определяющий границу сглаженной формы этого |
abstract double | getX1() | Возвращает координату X начальной точки с точностью |
abstract double | getX2() | Возвращает координату X конечной точки с точностью |
abstract double | getY1() | Возвращает координату Y начальной точки с точностью |
abstract double | getY2() | Возвращает координату Y конечной точки с точностью |
boolean | intersects(double x,
double y,
double w,
double h) | Проверяет, пересекается ли внутренняя область |
boolean | intersects(Rectangle2D r) | Проверяет, пересекается ли внутренняя область |
void | setCurve(double[] coords,
int offset) | Устанавливает расположение конечных точек и точки управления этого |
abstract void | setCurve(double x1,
double y1,
double ctrlx,
double ctrly,
double x2,
double y2) | Устанавливает расположение конечных точек и точки управления этой кривой в указанные координаты |
void | setCurve(Point2D[] pts,
int offset) | Устанавливает расположение конечных точек и точек управления этого |
void | setCurve(Point2D p1,
Point2D cp,
Point2D p2) | Устанавливает расположение конечных точек и точки управления этого |
void | setCurve(QuadCurve2D c) | Устанавливает расположение конечных точек и точки управления этого |
static int | solveQuadratic(double[] eqn) | Решает квадратичное уравнение, коэффициенты которого находятся в массиве |
static int | solveQuadratic(double[] eqn,
double[] res) | Решает квадратичное уравнение, коэффициенты которого находятся в массиве |
static void | subdivide(double[] src,
int srcoff,
double[] left,
int leftoff,
double[] right,
int rightoff) | Разделяет квадратичную кривую, заданную координатами, хранящимися в массиве |
void | subdivide(QuadCurve2D left,
QuadCurve2D right) | Разделяет этот |
static void | subdivide(QuadCurve2D src,
QuadCurve2D left,
QuadCurve2D right) | Разделяет квадратичную кривую, заданную параметром |
Методы, унаследованные от класса java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, унаследованные от интерфейса java.awt.Shape
getBounds2D Подробное описание конструкторов
QuadCurve2D
protected QuadCurve2D()
Этот абстрактный класс не может быть инстанцирован напрямую. Подклассы, специфичные для типа, доступны для инстанцирования и предоставляют ряд форматов для хранения информации, необходимой для удовлетворения различных методов доступа ниже.
- С:
- 1.2
- См. также:
-
QuadCurve2D.Float,QuadCurve2D.Double
Методы
getX1
public abstract double getX1()
Возвращает координату X начальной точки в double точности.
- Возвращает:
- координату X начальной точки.
- С момента:
- 1.2
getY1
public abstract double getY1()
Возвращает координату Y начальной точки в double точности.
- Возвращает:
- координату Y начальной точки.
- С момента:
- 1.2
getP1
public abstract Point2D getP1()
Возвращает начальную точку.
- Возвращает:
- объект
Point2D, являющийся начальной точкой этойQuadCurve2D. - С момента:
- 1.2
getCtrlX
public abstract double getCtrlX()
Возвращает координату X контрольной точки в double точности.
- Возвращает:
- координату X контрольной точки
- С момента:
- 1.2
getCtrlY
public abstract double getCtrlY()
Возвращает координату Y контрольной точки в double точности.
- Возвращает:
- координату Y контрольной точки.
- С момента:
- 1.2
getCtrlPt
public abstract Point2D getCtrlPt()
Возвращает контрольную точку.
- Возвращает:
- объект
Point2D, являющийся контрольной точкой этойPoint2D. - С момента:
- 1.2
getX2
public abstract double getX2()
Возвращает координату X конечной точки в double точности.
- Возвращает:
- координату X конечной точки.
- С момента:
- 1.2
getY2
public abstract double getY2()
Возвращает координату Y конечной точки в 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в интерфейсе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
- См. также:
Area
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
- См. также:
Shape.intersects(double, double, double, double)
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и вычисления containment слишком дороги. - С момента:
- 1.2
- См. также:
-
Area,Shape.intersects(double, double, double, double)
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
- См. также:
Shape.contains(double, double, double, double)
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)
- Определяется:
-
getBoundsв интерфейсеShape - Возвращает:
- целый
Rectangle, полностью охватывающийShape. - С:
- 1.2
- См. также:
Shape.getBounds2D()
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
- См. также:
Cloneable
© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/geom/QuadCurve2D.html