Класс Line2D
- Все реализуемые интерфейсы:
Shape, Cloneable
- Прямые известные подклассы:
Line2D.Double, Line2D.Float
public abstract class Line2D extends Object implements Shape, Cloneable
Line2D представляет отрезок прямой в системе координат (x,y). Этот класс является лишь абстрактным суперклассом для всех объектов, хранящих двумерный отрезок прямой. Фактическое представление координат оставлено на усмотрение подкласса.
- Начиная с:
- 1.2
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
Line2D.Double |
Отрезок прямой, заданный координатами типа double. |
static class |
Line2D.Float |
Отрезок прямой, заданный координатами типа float. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Это абстрактный класс, который нельзя создать напрямую. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создает новый объект того же класса, что и этот объект. |
boolean |
contains |
Проверяет, находится ли заданная координата внутри границы этого Line2D. |
boolean |
contains |
Проверяет, содержит ли внутренняя область этого Line2D целиком заданную прямоугольную область. |
boolean |
contains |
Проверяет, находится ли заданный Point2D внутри границы этого Line2D. |
boolean |
contains |
Проверяет, содержит ли внутренняя область этого Line2D целиком заданный Rectangle2D. |
Rectangle |
getBounds() |
Возвращает целочисленный Rectangle, полностью охватывающий Shape. |
abstract Point2D |
getP1() |
Возвращает начальную Point2D этого Line2D. |
abstract Point2D |
getP2() |
Возвращает конечную Point2D этого Line2D. |
PathIterator |
getPathIterator |
Возвращает объект-итератор, задающий границу этого Line2D. |
PathIterator |
getPathIterator |
Возвращает объект-итератор, задающий границу этого уплощенного Line2D. |
abstract double |
getX1() |
Возвращает X-координату начальной точки с двойной точностью. |
abstract double |
getX2() |
Возвращает X-координату конечной точки с двойной точностью. |
abstract double |
getY1() |
Возвращает Y-координату начальной точки с двойной точностью. |
abstract double |
getY2() |
Возвращает Y-координату конечной точки с двойной точностью. |
boolean |
intersects |
Проверяет, пересекается ли внутренняя область Shape с внутренней областью заданного прямоугольника. |
boolean |
intersects |
Проверяет, пересекается ли внутренняя область Shape с внутренней областью заданного Rectangle2D. |
boolean |
intersectsLine |
Проверяет, пересекает ли отрезок прямой от (x1,y1) до (x2,y2) этот отрезок прямой. |
boolean |
intersectsLine |
Проверяет, пересекает ли заданный отрезок прямой этот отрезок прямой. |
static boolean |
linesIntersect |
Проверяет, пересекает ли отрезок прямой от (x1,y1) до (x2,y2) отрезок прямой от (x3,y3) до (x4,y4). |
double |
ptLineDist |
Возвращает расстояние от точки до этой прямой. |
static double |
ptLineDist |
Возвращает расстояние от точки до прямой. |
double |
ptLineDist |
Возвращает расстояние от Point2D до этой прямой. |
double |
ptLineDistSq |
Возвращает квадрат расстояния от точки до этой прямой. |
static double |
ptLineDistSq |
Возвращает квадрат расстояния от точки до прямой. |
double |
ptLineDistSq |
Возвращает квадрат расстояния от заданного Point2D до этой прямой. |
double |
ptSegDist |
Возвращает расстояние от точки до этого отрезка прямой. |
static double |
ptSegDist |
Возвращает расстояние от точки до отрезка прямой. |
double |
ptSegDist |
Возвращает расстояние от Point2D до этого отрезка прямой. |
double |
ptSegDistSq |
Возвращает квадрат расстояния от точки до этого отрезка прямой. |
static double |
ptSegDistSq |
Возвращает квадрат расстояния от точки до отрезка прямой. |
double |
ptSegDistSq |
Возвращает квадрат расстояния от Point2D до этого отрезка прямой. |
int |
relativeCCW |
Возвращает признак, указывающий, с какой стороны от этого отрезка прямой находится заданная точка (px,py). |
static int |
relativeCCW |
Возвращает признак, указывающий, с какой стороны от отрезка прямой от (x1,y1) до (x2,y2) находится заданная точка (px,py). |
int |
relativeCCW |
Возвращает признак, указывающий, с какой стороны от этого отрезка прямой находится заданный Point2D. |
abstract void |
setLine |
Задает положение конечных точек этого Line2D указанными координатами типа double. |
void |
setLine |
Задает положение конечных точек этого Line2D таким же, как у конечных точек заданного Line2D. |
void |
setLine |
Задает положение конечных точек этого Line2D указанными координатами типа Point2D. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе Shape
getBounds2D
Подробное описание конструкторов
Line2D
protected Line2D()
- Начиная с версии:
- 1.2
- См. также:
Подробное описание методов
getX1
public abstract double getX1()
- Возвращает:
- координату X начальной точки этого объекта
Line2D. - Начиная с версии:
- 1.2
getY1
public abstract double getY1()
- Возвращает:
- координату Y начальной точки этого объекта
Line2D. - Начиная с версии:
- 1.2
getP1
public abstract Point2D getP1()
Point2D этого Line2D.- Возвращает:
- начальную
Point2DэтогоLine2D. - Начиная с версии:
- 1.2
getX2
public abstract double getX2()
- Возвращает:
- координату X конечной точки этого объекта
Line2D. - Начиная с версии:
- 1.2
getY2
public abstract double getY2()
- Возвращает:
- координату Y конечной точки этого объекта
Line2D. - Начиная с версии:
- 1.2
getP2
public abstract Point2D getP2()
Point2D этого Line2D.- Возвращает:
- конечную
Point2DэтогоLine2D. - Начиная с версии:
- 1.2
setLine
public abstract void setLine(double x1, double y1, double x2, double y2)
Line2D указанными координатами типа double.- Параметры:
-
x1— координата X начальной точки -
y1— координата Y начальной точки -
x2— координата X конечной точки -
y2— координата Y конечной точки - Начиная с версии:
- 1.2
setLine
public void setLine(Point2D p1, Point2D p2)
Line2D указанными координатами Point2D.- Параметры:
-
p1— начальнаяPoint2Dотрезка -
p2— конечнаяPoint2Dотрезка - Начиная с версии:
- 1.2
setLine
public void setLine(Line2D l)
Line2D таким же, как положение конечных точек указанного Line2D.- Параметры:
-
l— указанныйLine2D - Начиная с версии:
- 1.2
relativeCCW
public static int relativeCCW(double x1, double y1, double x2, double y2, double px, double py)
(px,py) относительно отрезка от (x1,y1) до (x2,y2). Возвращаемое значение может быть равно 1, -1 или 0 и указывает, в каком направлении должна повернуться указанная линия вокруг своей первой конечной точки (x1,y1), чтобы указывать на заданную точку (px,py). Возвращаемое значение 1 означает, что отрезок должен повернуться в направлении, переводящем положительную ось X в отрицательное направление оси Y. В системе координат, используемой в Java 2D по умолчанию, это направление против часовой стрелки.
Возвращаемое значение -1 означает, что отрезок должен повернуться в направлении, переводящем положительную ось X в положительное направление оси Y. В системе координат по умолчанию это направление по часовой стрелке.
Возвращаемое значение 0 означает, что точка лежит точно на отрезке. Обратите внимание: индикаторное значение 0 встречается редко и не подходит для определения коллинеарности из-за погрешностей округления чисел с плавающей точкой.
Если точка лежит на одной прямой с отрезком, но не между его конечными точками, возвращается -1, если точка находится «за (x1,y1)», или 1, если точка находится «за (x2,y2)».
- Параметры:
-
x1— координата X начальной точки указанного отрезка -
y1— координата Y начальной точки указанного отрезка -
x2— координата X конечной точки указанного отрезка -
y2— координата Y конечной точки указанного отрезка -
px— координата X указанной точки, сравниваемой с указанным отрезком -
py— координата Y указанной точки, сравниваемой с указанным отрезком - Возвращает:
- целое число, указывающее положение третьей заданной координаты относительно отрезка, образованного первыми двумя заданными координатами.
- Начиная с версии:
- 1.2
relativeCCW
public int relativeCCW(double px, double py)
(px,py) относительно этого отрезка. Описание возвращаемого значения см. в комментариях к методу relativeCCW(double, double, double, double, double, double).- Параметры:
-
px— координата X указанной точки, сравниваемой с этимLine2D -
py— координата Y указанной точки, сравниваемой с этимLine2D - Возвращает:
- целое число, указывающее положение заданных координат относительно этого
Line2D - Начиная с версии:
- 1.2
- См. также:
relativeCCW
public int relativeCCW(Point2D p)
Point2D относительно этого отрезка. Описание возвращаемого значения см. в комментариях к методу relativeCCW(double, double, double, double, double, double).- Параметры:
-
p— указаннаяPoint2Dдля сравнения с этимLine2D - Возвращает:
- целое число, указывающее положение указанной
Point2Dотносительно этогоLine2D - Начиная с версии:
- 1.2
- См. также:
linesIntersect
public static boolean linesIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
(x1,y1) до (x2,y2) отрезок от (x3,y3) до (x4,y4).- Параметры:
-
x1— координата X начальной точки первого указанного отрезка -
y1— координата Y начальной точки первого указанного отрезка -
x2— координата X конечной точки первого указанного отрезка -
y2— координата Y конечной точки первого указанного отрезка -
x3— координата X начальной точки второго указанного отрезка -
y3— координата Y начальной точки второго указанного отрезка -
x4— координата X конечной точки второго указанного отрезка -
y4— координата Y конечной точки второго указанного отрезка - Возвращает:
-
true, если первый и второй указанные отрезки пересекаются;falseв противном случае. - Начиная с версии:
- 1.2
intersectsLine
public boolean intersectsLine(double x1, double y1, double x2, double y2)
(x1,y1) до (x2,y2) этот отрезок.- Параметры:
-
x1— координата X начальной точки указанного отрезка -
y1— координата Y начальной точки указанного отрезка -
x2— координата X конечной точки указанного отрезка -
y2— координата Y конечной точки указанного отрезка - Возвращает:
-
true, если этот отрезок и указанный отрезок пересекаются;falseв противном случае. - Начиная с версии:
- 1.2
intersectsLine
public boolean intersectsLine(Line2D l)
- Параметры:
-
l— указанныйLine2D - Возвращает:
-
true, если этот отрезок и указанный отрезок пересекаются;falseв противном случае. - Начиная с версии:
- 1.2
ptSegDistSq
public static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, double py)
- Параметры:
-
x1— координата X начальной точки указанного отрезка -
y1— координата Y начальной точки указанного отрезка -
x2— координата X конечной точки указанного отрезка -
y2— координата Y конечной точки указанного отрезка -
px— координата X указанной точки, расстояние от которой до указанного отрезка измеряется -
py— координата Y указанной точки, расстояние от которой до указанного отрезка измеряется - Возвращает:
- значение типа double, равное квадрату расстояния от указанной точки до указанного отрезка.
- Начиная с версии:
- 1.2
- См. также:
ptSegDist
public static double ptSegDist(double x1, double y1, double x2, double y2, double px, double py)
- Параметры:
-
x1— координата X начальной точки указанного отрезка -
y1— координата Y начальной точки указанного отрезка -
x2— координата X конечной точки указанного отрезка -
y2— координата Y конечной точки указанного отрезка -
px— координата X указанной точки, расстояние от которой до указанного отрезка измеряется -
py— координата Y указанной точки, расстояние от которой до указанного отрезка измеряется - Возвращает:
- значение типа double, равное расстоянию от указанной точки до указанного отрезка.
- Начиная с версии:
- 1.2
- См. также:
ptSegDistSq
public double ptSegDistSq(double px, double py)
- Параметры:
-
px— координата X указанной точки, расстояние от которой до этого отрезка измеряется -
py— координата Y указанной точки, расстояние от которой до этого отрезка измеряется - Возвращает:
- значение типа double, равное квадрату расстояния от указанной точки до текущего отрезка.
- Начиная с версии:
- 1.2
- См. также:
ptSegDistSq
public double ptSegDistSq(Point2D pt)
Point2D до этого отрезка. Измеряется расстояние между указанной точкой и ближайшей точкой между конечными точками текущей линии. Если указанная точка пересекает отрезок между его конечными точками, этот метод возвращает 0.0.- Параметры:
-
pt— указаннаяPoint2D, расстояние от которой до этого отрезка измеряется. - Возвращает:
- значение типа double, равное квадрату расстояния от указанной
Point2Dдо текущего отрезка. - Начиная с версии:
- 1.2
- См. также:
ptSegDist
public double ptSegDist(double px, double py)
- Параметры:
-
px— координата X указанной точки, расстояние от которой до этого отрезка измеряется -
py— координата Y указанной точки, расстояние от которой до этого отрезка измеряется - Возвращает:
- значение типа double, равное расстоянию от указанной точки до текущего отрезка.
- Начиная с версии:
- 1.2
- См. также:
ptSegDist
public double ptSegDist(Point2D pt)
Point2D до этого отрезка. Измеряется расстояние между указанной точкой и ближайшей точкой между конечными точками текущей линии. Если указанная точка пересекает отрезок между его конечными точками, этот метод возвращает 0.0.- Параметры:
-
pt— указаннаяPoint2D, расстояние от которой до этого отрезка измеряется - Возвращает:
- значение типа double, равное расстоянию от указанной
Point2Dдо текущего отрезка. - Начиная с версии:
- 1.2
- См. также:
ptLineDistSq
public static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, double py)
- Параметры:
-
x1— координата X начальной точки указанной прямой -
y1— координата Y начальной точки указанной прямой -
x2— координата X конечной точки указанной прямой -
y2— координата Y конечной точки указанной прямой -
px— координата X указанной точки, расстояние от которой до указанной прямой измеряется -
py— координата Y указанной точки, расстояние от которой до указанной прямой измеряется - Возвращает:
- значение типа double, равное квадрату расстояния от указанной точки до указанной прямой.
- Начиная с версии:
- 1.2
- См. также:
ptLineDist
public static double ptLineDist(double x1, double y1, double x2, double y2, double px, double py)
- Параметры:
-
x1— координата X начальной точки указанной прямой -
y1— координата Y начальной точки указанной прямой -
x2— координата X конечной точки указанной прямой -
y2— координата Y конечной точки указанной прямой -
px— координата X указанной точки, расстояние от которой до указанной прямой измеряется -
py— координата Y указанной точки, расстояние от которой до указанной прямой измеряется - Возвращает:
- значение типа double, равное расстоянию от указанной точки до указанной прямой.
- Начиная с версии:
- 1.2
- См. также:
ptLineDistSq
public double ptLineDistSq(double px, double py)
Line2D. Если указанная точка пересекает прямую, этот метод возвращает 0.0.- Параметры:
-
px— координата X указанной точки, расстояние от которой до этой прямой измеряется -
py— координата Y указанной точки, расстояние от которой до этой прямой измеряется - Возвращает:
- значение типа double, равное квадрату расстояния от указанной точки до текущей прямой.
- Начиная с версии:
- 1.2
- См. также:
ptLineDistSq
public double ptLineDistSq(Point2D pt)
Point2D до этой прямой. Измеряется расстояние между указанной точкой и ближайшей точкой на бесконечно продолженной прямой, заданной этим Line2D. Если указанная точка пересекает прямую, этот метод возвращает 0.0.- Параметры:
-
pt— указаннаяPoint2D, расстояние от которой до этой прямой измеряется - Возвращает:
- значение типа double, равное квадрату расстояния от указанной
Point2Dдо текущей прямой. - Начиная с версии:
- 1.2
- См. также:
ptLineDist
public double ptLineDist(double px, double py)
Line2D. Если указанная точка пересекает прямую, этот метод возвращает 0.0.- Параметры:
-
px— координата X указанной точки, расстояние от которой до этой прямой измеряется -
py— координата Y указанной точки, расстояние от которой до этой прямой измеряется - Возвращает:
- значение типа double, равное расстоянию от указанной точки до текущей прямой.
- Начиная с версии:
- 1.2
- См. также:
ptLineDist
public double ptLineDist(Point2D pt)
Point2D до этой прямой. Измеряется расстояние между указанной точкой и ближайшей точкой на бесконечно продолженной прямой, заданной этим Line2D. Если указанная точка пересекает прямую, этот метод возвращает 0.0.- Параметры:
-
pt— указаннаяPoint2D, расстояние до которой измеряется - Возвращает:
- значение типа double, равное расстоянию от указанной
Point2Dдо текущей прямой. - Начиная с версии:
- 1.2
- См. также:
contains
public boolean contains(double x, double y)
Line2D. Этот метод необходим для реализации интерфейса Shape, но для объектов Line2D он всегда возвращает false, поскольку линия не имеет площади.contains
public boolean contains(Point2D p)
Point2D внутри границы этого Line2D. Этот метод необходим для реализации интерфейса Shape, но для объектов Line2D он всегда возвращает false, поскольку линия не имеет площади.intersects
public boolean intersects(double x, double y, double w, double h)
Shape с внутренней областью заданной прямоугольной области. Считается, что прямоугольная область пересекается с Shape, если какая-либо точка принадлежит и внутренней области Shape, и заданной прямоугольной области. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true, если:
- с высокой вероятностью прямоугольная область и
Shapeпересекаются, но - вычисления, необходимые для точного определения этого пересечения, требуют непомерно больших затрат.
Shapes этот метод может вернуть true, даже если прямоугольная область не пересекается с Shape. Класс Area выполняет более точные вычисления геометрических пересечений, чем большинство объектов Shape, поэтому его можно использовать, если требуется более точный результат.- Определено в:
-
intersectsв интерфейсеShape - Параметры:
-
x— координата X верхнего левого угла заданной прямоугольной области -
y— координата Y верхнего левого угла заданной прямоугольной области -
w— ширина заданной прямоугольной области -
h— высота заданной прямоугольной области - Возвращает:
-
true, если внутренняя областьShapeи внутренняя область прямоугольника пересекаются или с высокой вероятностью пересекаются, а вычисление пересечения потребовало бы слишком больших затрат;falseв противном случае. - Начиная с версии:
- 1.2
- См. также:
intersects
public boolean intersects(Rectangle2D r)
Shape с внутренней областью указанного Rectangle2D. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true, если: - существует высокая вероятность пересечения
Rectangle2DиShape, но - точные вычисления для определения этого пересечения требуют чрезмерных затрат.
Shapes этот метод может возвращать true, даже если Rectangle2D не пересекается с Shape. Класс Area выполняет более точные вычисления геометрического пересечения, чем большинство объектов Shape, поэтому его можно использовать, если требуется более точный ответ.- Определено в:
-
intersectsв интерфейсеShape - Параметры:
-
r- указанноеRectangle2D - Возвращает:
-
true, если внутренняя областьShapeи внутренняя область указанногоRectangle2Dпересекаются или с высокой вероятностью пересекаются, а вычисление пересечения было бы слишком затратным; в противном случае —false. - Начиная с версии:
- 1.2
- См. также:
contains
public boolean contains(double x, double y, double w, double h)
Line2D содержит указанный набор координат прямоугольника. Этот метод необходимо реализовать для выполнения требований интерфейса Shape, однако для объектов Line2D он всегда возвращает false, поскольку линия не содержит площади.- Определено в:
-
containsв интерфейсеShape - Параметры:
-
x- координата X верхнего левого угла указанной прямоугольной области -
y- координата Y верхнего левого угла указанной прямоугольной области -
w- ширина указанной прямоугольной области -
h- высота указанной прямоугольной области - Возвращает:
-
false, посколькуLine2Dне содержит площади. - Начиная с версии:
- 1.2
- См. также:
contains
public boolean contains(Rectangle2D r)
Line2D содержит указанное Rectangle2D. Этот метод необходимо реализовать для выполнения требований интерфейса Shape, однако для объектов Line2D он всегда возвращает false, поскольку линия не содержит площади.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)
Line2D. Итератор этого класса не является потокобезопасным, то есть класс Line2D не гарантирует, что изменения геометрии этого объекта Line2D не повлияют на уже выполняющиеся итерации этой геометрии.- Определено в:
-
getPathIteratorв интерфейсеShape - Параметры:
-
at- указанноеAffineTransform - Возвращает:
PathIterator, определяющий границу этогоLine2D.- Начиная с версии:
- 1.2
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
Line2D. Итератор этого класса не является потокобезопасным, то есть класс Line2D не гарантирует, что изменения геометрии этого объекта Line2D не повлияют на уже выполняющиеся итерации этой геометрии.- Определено в:
-
getPathIteratorв интерфейсеShape - Параметры:
-
at- указанноеAffineTransform -
flatness- максимальное отклонение контрольных точек заданной кривой от коллинеарности, при превышении которого кривая после разбиения заменяется прямой линией, соединяющей конечные точки. Поскольку объектLine2Dвсегда является плоским, этот параметр игнорируется. - Возвращает:
PathIterator, определяющий границу сплющенногоLine2D- Начиная с версии:
- 1.2
clone
public Object clone()
- Переопределяет:
-
cloneв классеObject - Возвращает:
- клона этого экземпляра.
- Выбрасывает:
-
OutOfMemoryError- если недостаточно памяти. - Начиная с версии:
- 1.2
- См. также:
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/geom/Line2D.html