Класс 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 по указанным Point2D координатам. |
Методы, объявленные в классе 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)
- Parameters:
-
x1- координата X начальной точки заданного отрезка прямой -
y1- координата Y начальной точки заданного отрезка прямой -
x2- координата X конечной точки заданного отрезка прямой -
y2- координата Y конечной точки заданного отрезка прямой -
px- координата X заданной точки, измеряемой относительно заданного отрезка прямой -
py- координата Y заданной точки, измеряемой относительно заданного отрезка прямой - Returns:
- значение типа double, являющееся квадратом расстояния от заданной точки до заданного отрезка прямой.
- Since:
- 1.2
- See Also:
ptSegDist
public static double ptSegDist(double x1, double y1, double x2, double y2, double px, double py)
- Parameters:
-
x1- координата X начальной точки заданного отрезка прямой -
y1- координата Y начальной точки заданного отрезка прямой -
x2- координата X конечной точки заданного отрезка прямой -
y2- координата Y конечной точки заданного отрезка прямой -
px- координата X заданной точки, измеряемой относительно заданного отрезка прямой -
py- координата Y заданной точки, измеряемой относительно заданного отрезка прямой - Returns:
- значение типа double, являющееся расстоянием от заданной точки до заданного отрезка прямой.
- Since:
- 1.2
- See Also:
ptSegDistSq
public double ptSegDistSq(double px, double py)
- Parameters:
-
px- координата X заданной точки, измеряемой относительно этого отрезка прямой -
py- координата Y заданной точки, измеряемой относительно этого отрезка прямой - Returns:
- значение типа double, являющееся квадратом расстояния от заданной точки до текущего отрезка прямой.
- Since:
- 1.2
- See Also:
ptSegDistSq
public double ptSegDistSq(Point2D pt)
- Parameters:
-
pt- заданная точка, измеряемая относительно этого отрезка прямой. - Returns:
- значение типа double, являющееся квадратом расстояния от заданной точки до текущего отрезка прямой.
- Since:
- 1.2
- See Also:
ptSegDist
public double ptSegDist(double px, double py)
- Parameters:
-
px- координата X заданной точки, измеряемой относительно этого отрезка прямой -
py- координата Y заданной точки, измеряемой относительно этого отрезка прямой - Returns:
- значение типа double, являющееся расстоянием от заданной точки до текущего отрезка прямой.
- Since:
- 1.2
- See Also:
ptSegDist
public double ptSegDist(Point2D pt)
- Parameters:
-
pt- заданная точка, измеряемая относительно этого отрезка прямой - Returns:
- значение типа double, являющееся расстоянием от заданной точки до текущего отрезка прямой.
- Since:
- 1.2
- See Also:
ptLineDistSq
public static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, double py)
- Parameters:
-
x1- координата X начальной точки заданной прямой -
y1- координата Y начальной точки заданной прямой -
x2- координата X конечной точки заданной прямой -
y2- координата Y конечной точки заданной прямой -
px- координата X заданной точки, измеряемой относительно заданной прямой -
py- координата Y заданной точки, измеряемой относительно заданной прямой - Returns:
- значение типа double, являющееся квадратом расстояния от заданной точки до заданной прямой.
- Since:
- 1.2
- See Also:
ptLineDist
public static double ptLineDist(double x1, double y1, double x2, double y2, double px, double py)
- Parameters:
-
x1- координата X начальной точки заданной прямой -
y1- координата Y начальной точки заданной прямой -
x2- координата X конечной точки заданной прямой -
y2- координата Y конечной точки заданной прямой -
px- координата X заданной точки, измеряемой относительно заданной прямой -
py- координата Y заданной точки, измеряемой относительно заданной прямой - Returns:
- значение типа double, являющееся расстоянием от заданной точки до заданной прямой.
- Since:
- 1.2
- See Also:
ptLineDistSq
public double ptLineDistSq(double px, double py)
- Parameters:
-
px- координата X заданной точки, измеряемой относительно этой прямой -
py- координата Y заданной точки, измеряемой относительно этой прямой - Returns:
- значение типа double, являющееся квадратом расстояния от заданной точки до текущей прямой.
- Since:
- 1.2
- See Also:
ptLineDistSq
public double ptLineDistSq(Point2D pt)
- Parameters:
-
pt- заданная точка, измеряемая относительно этой прямой - Returns:
- значение типа double, являющееся квадратом расстояния от заданной точки до текущей прямой.
- Since:
- 1.2
- See Also:
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:
- a
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:
- a
PathIterator, который определяет границу сглаженногоLine2D - Since:
- 1.2
clone
public Object clone()
- Overrides:
-
cloneв классеObject - Returns:
- клонированный экземпляр.
- Throws:
-
OutOfMemoryError- если памяти недостаточно. - Since:
- 1.2
- See Also:
© 1993, 2021, 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/17/docs/api/java.desktop/java/awt/geom/Line2D.html