Класс Line2D
- Все реализованные интерфейсы:
-
Shape,Cloneable
- Прямые известные подклассы:
-
Line2D.Double,Line2D.Float
public abstract class Line2D extends Object implements Shape, Cloneable
Line2D представляет отрезок прямой в (x,y) координатном пространстве. Этот класс является только абстрактным суперклассом для всех объектов, хранящих отрезок 2D прямой. Фактическое представление координат остается за подклассом.
- С тех пор:
- 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 до заданных координат с плавающей точкой. |
Методы, объявленные в классе java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе java.awt.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 в соответствии с указанными координатами с двойной точностью.- Параметры:
-
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 заданной точки, измеряемой относительно заданного отрезка прямой - Возвращает:
- двойное значение, представляющее квадрат расстояния от указанной точки до заданного отрезка прямой.
- С:
- 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.- Parameters:
-
px- координата X заданной точки, измеряемой относительно этой линии -
py- координата Y заданной точки, измеряемой относительно этой линии - Returns:
- значение типа double, представляющее расстояние от заданной точки до текущей линии.
- Since:
- 1.2
- See Also:
ptLineDist
public double ptLineDist(Point2D pt)
Point2D до этой линии. Расстояние измеряется как расстояние между заданной точкой и ближайшей точкой на бесконечно продолженной линии, определяемой этой Line2D. Если заданная точка пересекает линию, этот метод возвращает 0,0.- Parameters:
-
pt- заданнаяPoint2Dдля измерения - Returns:
- значение типа double, представляющее расстояние от заданной
Point2Dдо текущей линии. - Since:
- 1.2
- See Also:
contains
public boolean contains(double x, double y)
Line2D. Этот метод требуется для реализации интерфейса Shape, но в случае объектов Line2D он всегда возвращает false, так как линия не содержит области.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
x- координата X проверяемой точки -
y- координата Y проверяемой точки - Returns:
-
false, так как линия не содержит области. - Since:
- 1.2
contains
public boolean contains(Point2D p)
Point2D внутри границ этой Line2D. Этот метод требуется для реализации интерфейса Shape, но в случае объектов Line2D он всегда возвращает false, так как линия не содержит области.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
p- заданнаяPoint2Dдля проверки - Returns:
-
false, так как линия не содержит области. - Since:
- 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 , и поэтому может быть использован, если требуется более точный ответ.- Specified by:
-
intersectsв интерфейсеShape - Parameters:
-
x- координата X верхнего левого угла заданной прямоугольной области -
y- координата Y верхнего левого угла заданной прямоугольной области -
w- ширина заданной прямоугольной области -
h- высота заданной прямоугольной области - Returns:
-
true, если внутренняя частьShapeи внутренняя часть прямоугольной области пересекаются, или если оба очень вероятно пересекаются, а вычисления пересечения слишком дороги;falseв противном случае. - Since:
- 1.2
- See Also:
intersects
public boolean intersects(Rectangle2D r)
Shape с внутренней частью заданного Rectangle2D. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true когда: - существует высокая вероятность пересечения
Rectangle2DиShape, но - вычисления для точного определения этого пересечения слишком дорогостоящие.
Shapes этот метод может вернуть true даже если Rectangle2D не пересекает Shape. Класс Area выполняет более точные вычисления геометрического пересечения, чем большинство объектов Shape , и поэтому может быть использован, если требуется более точный ответ.- Specified by:
-
intersectsв интерфейсеShape - Parameters:
-
r- заданныйRectangle2D - Returns:
-
true, если внутренняя частьShapeи внутренняя часть заданногоRectangle2Dпересекаются, или если оба очень вероятно пересекаются, а вычисления пересечения слишком дороги;falseв противном случае. - Since:
- 1.2
- See Also:
contains
public boolean contains(double x, double y, double w, double h)
Line2D содержит заданный набор прямоугольных координат. Этот метод требуется для реализации интерфейса Shape, но в случае объектов Line2D он всегда возвращает false, так как линия не содержит области.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
x- координата X верхнего левого угла заданной прямоугольной области -
y- координата Y верхнего левого угла заданной прямоугольной области -
w- ширина заданной прямоугольной области -
h- высота заданной прямоугольной области - Returns:
-
false, так как линия не содержит области. - Since:
- 1.2
- See Also:
contains
public boolean contains(Rectangle2D r)
Line2D содержит заданный Rectangle2D. Этот метод требуется для реализации интерфейса Shape, но в случае объектов Line2D он всегда возвращает false, так как линия не содержит области.- Specified by:
-
containsв интерфейсеShape - Parameters:
-
r- заданныйRectangle2Dдля проверки - Returns:
-
false, так как линия не содержит области. - Since:
- 1.2
- See Also:
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)
- Specified by:
-
getBoundsв интерфейсеShape - Returns:
- целое число
Rectangle, которое полностью охватываетShape. - Since:
- 1.2
- See Also:
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, 2023, 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/21/docs/api/java.desktop/java/awt/geom/Line2D.html