Класс 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 |
Возвращает признак того, где находится заданная точка (px,py) относительно отрезка от (x1,y1) до (x2,y2). |
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 | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, предназначено для удаления: этот элемент API может быть удален в будущей версии. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе Shape
getBounds2D | Модификатор и тип | Метод | Описание |
|---|---|---|
Rectangle2D |
getBounds2D() |
Возвращает более точную ограничивающую рамку Shape с высокой точностью, чем метод getBounds. |
Подробное описание конструкторов
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.