Класс 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 |
Отрезок прямой, заданный координатами с плавающей точкой. |
static class |
Line2D.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 на указанные координаты с двойной точностью. |
void |
setLine |
Устанавливает положение конечных точек этого Line2D по образцу конечных точек указанного Line2D. |
void |
setLine |
Устанавливает положение конечных точек этого Line2D на указанные Point2D координаты. |
Методы, объявленные в классе java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе java.awt.Shape
getBounds2D
Подробное описание конструкторов
Line2D
protected Line2D()
- Since:
- 1.2
- См. также:
Подробное описание методов
getX1
public abstract double getX1()
- Возвращает:
- координату X начальной точки этого
Line2Dобъекта. - Since:
- 1.2
getY1
public abstract double getY1()
- Возвращает:
- координату Y начальной точки этого
Line2Dобъекта. - Since:
- 1.2
getP1
public abstract Point2D getP1()
Point2D этого Line2D.- Возвращает:
- начальную
Point2DэтогоLine2D. - Since:
- 1.2
getX2
public abstract double getX2()
- Возвращает:
- координату X конечной точки этого
Line2Dобъекта. - Since:
- 1.2
getY2
public abstract double getY2()
- Возвращает:
- координату Y конечной точки этого
Line2Dобъекта. - Since:
- 1.2
getP2
public abstract Point2D getP2()
Point2D этого Line2D.- Возвращает:
- конечную
Point2DэтогоLine2D. - Since:
- 1.2
setLine
public abstract void setLine(double x1, double y1, double x2, double y2)
Line2D для указанных координат с двойной точностью.- Параметры:
-
x1- координата X начальной точки -
y1- координата Y начальной точки -
x2- координата X конечной точки -
y2- координата Y конечной точки - Since:
- 1.2
setLine
public void setLine(Point2D p1, Point2D p2)
Line2D для указанных координат Point2D.- Параметры:
-
p1- начальнаяPoint2Dотрезка прямой -
p2- конечнаяPoint2Dотрезка прямой - Since:
- 1.2
setLine
public void setLine(Line2D l)
Line2D такими же, как у этих конечных точек указанного Line2D.- Параметры:
-
l- указанныйLine2D - Since:
- 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 указанной точки для сравнения с указанным отрезком прямой - Возвращает:
- целое число, которое указывает положение третьих указанных координат относительно отрезка прямой, образованного первыми двумя указанными координатами.
- Since:
- 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 - Since:
- 1.2
- См. также:
relativeCCW
public int relativeCCW(Point2D p)
Point2D относительно этого отрезка прямой. Смотрите комментарии к методу relativeCCW(double, double, double, double, double, double) для интерпретации возвращаемого значения.- Параметры:
-
p- указаннаяPoint2Dдля сравнения с этимLine2D - Возвращает:
- целое число, которое указывает положение указанной
Point2Dотносительно этогоLine2D - Since:
- 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в противном случае. - Since:
- 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 заданной точки, измеряемой относительно заданного отрезка прямой - Возвращает:
- двойное значение, представляющее собой квадрат расстояния от заданной точки до заданного отрезка прямой.
- С:
- 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 заданной точки, измеряемой относительно заданного отрезка прямой - Возвращает:
- двойное значение, представляющее собой расстояние от заданной точки до заданного отрезка прямой.
- С:
- 1.2
- См. также:
ptSegDistSq
public double ptSegDistSq(double px, double py)
- Параметры:
-
px- координата X заданной точки, измеряемой относительно этого отрезка прямой -
py- координата Y заданной точки, измеряемой относительно этого отрезка прямой - Возвращает:
- двойное значение, представляющее собой квадрат расстояния от заданной точки до текущего отрезка прямой.
- С:
- 1.2
- См. также:
ptSegDistSq
public double ptSegDistSq(Point2D pt)
Point2D до этого отрезка прямой. Измеряемое расстояние — расстояние между заданной точкой и ближайшей точкой между конечными точками текущей прямой. Если заданная точка пересекает отрезок прямой между конечными точками, этот метод возвращает 0,0.- Параметры:
-
pt- заданнаяPoint2D, измеряемая относительно этого отрезка прямой. - Возвращает:
- двойное значение, представляющее собой квадрат расстояния от заданной
Point2Dдо текущего отрезка прямой. - С:
- 1.2
- См. также:
ptSegDist
public double ptSegDist(double px, double py)
- Параметры:
-
px- координата X заданной точки, измеряемой относительно этого отрезка прямой -
py- координата Y заданной точки, измеряемой относительно этого отрезка прямой - Возвращает:
- двойное значение, представляющее собой расстояние от заданной точки до текущего отрезка прямой.
- С:
- 1.2
- См. также:
ptSegDist
public double ptSegDist(Point2D pt)
Point2D до этого отрезка прямой. Измеряемое расстояние — расстояние между заданной точкой и ближайшей точкой между конечными точками текущей прямой. Если заданная точка пересекает отрезок прямой между конечными точками, этот метод возвращает 0,0.- Параметры:
-
pt- заданнаяPoint2D, измеряемая относительно этого отрезка прямой - Возвращает:
- двойное значение, представляющее собой расстояние от заданной
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 заданной точки, измеряемой относительно заданной прямой - Возвращает:
- двойное значение, представляющее собой квадрат расстояния от заданной точки до заданной прямой.
- С:
- 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 заданной точки, измеряемой относительно заданной прямой - Возвращает:
- двойное значение, представляющее собой расстояние от заданной точки до заданной прямой.
- С:
- 1.2
- См. также:
ptLineDistSq
public double ptLineDistSq(double px, double py)
Line2D. Если заданная точка пересекает прямую, этот метод возвращает 0,0.- Параметры:
-
px- координата X заданной точки, измеряемой относительно этой прямой -
py- координата Y заданной точки, измеряемой относительно этой прямой - Возвращает:
- двойное значение, которое является квадратом расстояния от заданной точки до текущей прямой.
- С:
- 1.2
- См. также:
ptLineDistSq
public double ptLineDistSq(Point2D pt)
Point2D до этой прямой. Расстояние измеряется как расстояние между заданной точкой и ближайшей точкой на бесконечно продолженной прямой, определенной этой Line2D. Если заданная точка пересекает прямую, этот метод возвращает 0,0.- Параметры:
-
pt- заданнаяPoint2D, измеряемая относительно этой прямой - Возвращает:
- двойное значение, которое является квадратом расстояния от заданной
Point2Dдо текущей прямой. - С:
- 1.2
- См. также:
ptLineDist
public double ptLineDist(double px, double py)
Line2D. Если заданная точка пересекает прямую, этот метод возвращает 0,0.- Параметры:
-
px- координата X заданной точки, измеряемой относительно этой прямой -
py- координата Y заданной точки, измеряемой относительно этой прямой - Возвращает:
- двойное значение, которое является расстоянием от заданной точки до текущей прямой.
- С:
- 1.2
- См. также:
ptLineDist
public double ptLineDist(Point2D pt)
Point2D до этой прямой. Расстояние измеряется как расстояние между заданной точкой и ближайшей точкой на бесконечно продолженной прямой, определенной этой Line2D. Если заданная точка пересекает прямую, этот метод возвращает 0,0.- Параметры:
-
pt- заданнаяPoint2D, измеряемая - Возвращает:
- двойное значение, которое является расстоянием от заданной
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, так как прямая не содержит области. - С:
- 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 не повлияют на уже выполняемые итерации этой геометрии.- Specified by:
-
getPathIteratorв интерфейсеShape - Parameters:
-
at- указанныйAffineTransform - Returns:
- объект
PathIterator, определяющий границу этогоLine2D. - Since:
- 1.2
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
Line2D. Итератор для этого класса не потокобезопасен, что означает, что этот класс Line2D не гарантирует, что изменения в геометрии этого объекта Line2D не повлияют на уже выполняемые итерации этой геометрии.- Specified by:
-
getPathIteratorв интерфейсеShape - Parameters:
-
at- указанныйAffineTransform -
flatness- максимальное отклонение, которое могут иметь точки управления для заданной кривой от коллинеарности, перед заменой подчинённой кривой прямой линией, соединяющей конечные точки. Так как объектLine2Dвсегда плоский, этот параметр игнорируется. - Returns:
- объект
PathIterator, определяющий границу сглаженногоLine2D - Since:
- 1.2
clone
public Object clone()
- Overrides:
-
cloneв классеObject - Returns:
- клонированный экземпляр.
- Throws:
-
OutOfMemoryError- если памяти недостаточно. - Since:
- 1.2
- See Also:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/geom/Line2D.html