Класс 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 могут быть пустыми или ссылаться на один и тот же массив и смещение, как массив 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и вычисления включения слишком дороги. - С:
- 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 в случае переполнения ограниченного диапазона целочисленного типа данных. Метод 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.