java.lang.Object
java.awt.geom.Line2D
- 直接已知的子类:
-
Line2D.Double
,Line2D.Float
这个
Line2D
表示在(x,y)
坐标空间中的线段。
这个类只是所有存储2D线段的对象的抽象超类。坐标的实际存储表示留给子类。
- 自:
- 1.2
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
使用双精度坐标指定的线段。static class
使用浮点坐标指定的线段。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionclone()
创建一个与此对象相同类的新对象。boolean
contains
(double x, double y) 测试指定坐标是否在此Line2D
的边界内。boolean
contains
(double x, double y, double w, double h) 测试此Line2D
的内部是否完全包含指定的一组矩形坐标。boolean
测试给定的Point2D
是否在此Line2D
的边界内。boolean
测试此Line2D
的内部是否完全包含指定的Rectangle2D
。返回完全包围Shape
的整数Rectangle
。abstract Point2D
getP1()
返回此Line2D
的起始Point2D
。abstract Point2D
getP2()
返回此Line2D
的结束Point2D
。返回定义此Line2D
边界的迭代对象。getPathIterator
(AffineTransform at, double flatness) 返回定义此扁平化Line2D
边界的迭代对象。abstract double
getX1()
返回双精度起始点的X坐标。abstract double
getX2()
返回双精度结束点的X坐标。abstract double
getY1()
返回双精度起始点的Y坐标。abstract double
getY2()
返回双精度结束点的Y坐标。boolean
intersects
(double x, double y, double w, double h) 测试Shape
的内部是否与指定的矩形区域的内部相交。boolean
测试Shape
的内部是否与指定的Rectangle2D
的内部相交。boolean
intersectsLine
(double x1, double y1, double x2, double y2) 测试从(x1,y1)
到(x2,y2)
的线段是否与此线段相交。boolean
测试指定的线段是否与此线段相交。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)
的线段相交。double
ptLineDist
(double px, double py) 返回点到此线的距离。static double
ptLineDist
(double x1, double y1, double x2, double y2, double px, double py) 返回点到线的距离。double
ptLineDist
(Point2D pt) 返回Point2D
到此线的距离。double
ptLineDistSq
(double px, double py) 返回点到此线的距离的平方。static double
ptLineDistSq
(double x1, double y1, double x2, double y2, double px, double py) 返回点到线的距离的平方。double
ptLineDistSq
(Point2D pt) 返回指定Point2D
到此线的距离的平方。double
ptSegDist
(double px, double py) 返回点到此线段的距离。static double
ptSegDist
(double x1, double y1, double x2, double y2, double px, double py) 返回点到线段的距离。double
返回Point2D
到此线段的距离。double
ptSegDistSq
(double px, double py) 返回点到此线段的距离的平方。static double
ptSegDistSq
(double x1, double y1, double x2, double y2, double px, double py) 返回点到线段的距离的平方。double
ptSegDistSq
(Point2D pt) 返回Point2D
到此线段的距离的平方。int
relativeCCW
(double px, double py) 返回指定点(px,py)
相对于此线段的位置指示器。static int
relativeCCW
(double x1, double y1, double x2, double y2, double px, double py) 返回指定点(px,py)
相对于从(x1,y1)
到(x2,y2)
的线段的位置指示器。int
返回指定Point2D
相对于此线段的位置指示器。abstract void
setLine
(double x1, double y1, double x2, double y2) 将此Line2D
的端点位置设置为指定的双精度坐标。void
将此Line2D
的端点位置设置为指定Line2D
的端点位置。void
将此Line2D
的端点位置设置为指定的Point2D
坐标。Methods declared in class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface java.awt.Shape
getBounds2D
-
Constructor Details
-
Line2D
protected Line2D()这是一个无法直接实例化的抽象类。有特定类型的实现子类可用于实例化,并提供多种格式来存储满足下面各种辅助方法所需信息的方法。- 自:
- 1.2
- 参见:
-
-
Method Details
-
getX1
public abstract double getX1()返回双精度起始点的X坐标。- 返回:
-
此
Line2D
对象的起始点的X坐标。 - 自:
- 1.2
-
getY1
public abstract double getY1()返回双精度起始点的Y坐标。- 返回:
-
此
Line2D
对象的起始点的Y坐标。 - 自:
- 1.2
-
getP1
返回此Line2D
的起始Point2D
。- 返回:
-
此
Line2D
的起始Point2D
。 - 自:
- 1.2
-
getX2
public abstract double getX2()返回双精度结束点的X坐标。- 返回:
-
此
Line2D
对象的结束点的X坐标。 - 自:
- 1.2
-
getY2
public abstract double getY2()返回双精度结束点的Y坐标。- 返回:
-
此
Line2D
对象的结束点的Y坐标。 - 自:
- 1.2
-
getP2
返回此Line2D
的结束Point2D
。- 返回:
-
此
Line2D
的结束Point2D
。 - 自:
- 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
将此Line2D
的端点位置设置为指定的Point2D
坐标。- 参数:
-
p1
- 线段的起始Point2D
-
p2
- 线段的结束Point2D
- 自:
- 1.2
-
setLine
将此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很少见,由于浮点舍入问题,不适用于确定共线性。
如果点与线段共线,但不在端点之间,则如果点位于“
(x1,y1)
之后”,值将为-1,如果点位于“(x2,y2)
之后”,值将为1。- 参数:
-
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
- 与此Line2D
比较的指定点的X坐标 -
py
- 与此Line2D
比较的指定点的Y坐标 - 返回值:
-
一个整数,指示指定坐标相对于此
Line2D
的位置 - 自版本:
- 1.2
- 参见:
-
relativeCCW
返回指定Point2D
相对于此线段的位置指示符。请参阅relativeCCW(double, double, double, double, double, double)
的方法注释以解释返回值。- 参数:
-
p
- 与此Line2D
比较的指定Point2D
- 返回值:
-
一个整数,指示指定
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
检查指定线段是否与此线段相交。- 参数:
-
l
- 指定的Line2D
- 返回值:
-
如果此线段和指定线段相交,则返回
true
; 否则返回false
。 - 自版本:
- 1.2
-
ptSegDistSq
public static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, double py) 返回从点到线段的距离的平方。测量的距离是指定点与指定端点之间的最近点之间的距离。如果指定点在端点之间与线段相交,则此方法返回0.0。- 参数:
-
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) 返回从点到线段的距离。测量的距离是指定点与指定端点之间的最近点之间的距离。如果指定点在端点之间与线段相交,则此方法返回0.0。- 参数:
-
x1
- 指定线段的起点的X坐标 -
y1
- 指定线段的起点的Y坐标 -
x2
- 指定线段的终点的X坐标 -
y2
- 指定线段的终点的Y坐标 -
px
- 与指定线段进行测量的指定点的X坐标 -
py
- 与指定线段进行测量的指定点的Y坐标 - 返回值:
- 一个双精度值,表示指定点到指定线段的距离。
- 自版本:
- 1.2
- 参见:
-
ptSegDistSq
public double ptSegDistSq(double px, double py) 返回从点到此线段的距离的平方。测量的距离是指定点与当前线段端点之间的最近点之间的距离。如果指定点在端点之间与线段相交,则此方法返回0.0。- 参数:
-
px
- 与此线段进行测量的指定点的X坐标 -
py
- 与此线段进行测量的指定点的Y坐标 - 返回值:
- 一个双精度值,表示指定点到当前线段的距离的平方。
- 自版本:
- 1.2
- 参见:
-
ptSegDistSq
返回从Point2D
到此线段的距离的平方。测量的距离是指定点与当前线段端点之间的最近点之间的距离。如果指定点在端点之间与线段相交,则此方法返回0.0。- 参数:
-
pt
- 与此线段进行测量的指定Point2D
- 返回值:
-
一个双精度值,表示指定
Point2D
到当前线段的距离的平方。 - 自版本:
- 1.2
- 参见:
-
ptSegDist
public double ptSegDist(double px, double py) 返回从点到此线段的距离。测量的距离是指定点与当前线段端点之间的最近点之间的距离。如果指定点在端点之间与线段相交,则此方法返回0.0。- 参数:
-
px
- 与此线段进行测量的指定点的X坐标 -
py
- 与此线段进行测量的指定点的Y坐标 - 返回值:
- 一个双精度值,表示指定点到当前线段的距离。
- 自版本:
- 1.2
- 参见:
-
ptSegDist
返回从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) 返回从点到线的距离的平方。测量的距离是指定点与由指定坐标定义的无限延伸线上的最近点之间的距离。如果指定点与线相交,则此方法返回0.0。- 参数:
-
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) 返回从点到线的距离。测量的距离是指指定点与由指定坐标定义的无限延伸线上最近点之间的距离。如果指定点与线相交,则此方法返回0.0。- 参数:
-
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
返回从指定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
返回从Point2D
到此线的距离。测量的距离是指指定点与由此Line2D
定义的无限延伸线上最近点之间的距离。如果指定点与线相交,则此方法返回0.0。- 参数:
-
pt
- 被测量的指定Point2D
- 返回:
-
一个double值,表示从指定
Point2D
到当前线的距离。 - 自版本:
- 1.2
- 参见:
-
contains
public boolean contains(double x, double y) -
contains
-
intersects
public boolean intersects(double x, double y, double w, double h) 测试Shape
的内部是否与指定的矩形区域的内部相交。如果任何点同时包含在Shape
的内部和指定矩形区域的内部,则认为矩形区域与Shape
相交。Shape.intersects()
方法允许Shape
实现在以下情况下保守地返回true
:- 矩形区域和
Shape
有很高的概率相交,但 - 准确确定此交集的计算代价过高。
Shapes
,即使矩形区域不与Shape
相交,此方法可能返回true
。与大多数Shape
对象相比,Area
类执行更准确的几何相交计算,因此如果需要更精确的答案,则可以使用该类。- 指定者:
-
intersects
在接口Shape
- 参数:
-
x
- 指定矩形区域的左上角的X坐标 -
y
- 指定矩形区域的左上角的Y坐标 -
w
- 指定矩形区域的宽度 -
h
- 指定矩形区域的高度 - 返回:
-
如果
Shape
的内部和矩形区域的内部相交,或者两者高度可能相交且计算交集的代价过高,则返回true
;否则返回false
。 - 自版本:
- 1.2
- 参见:
- 矩形区域和
-
intersects
测试Shape
的内部是否与指定的Rectangle2D
的内部相交。Shape.intersects()
方法允许Shape
实现在以下情况下保守地返回true
:Rectangle2D
和Shape
有很高的概率相交,但- 准确确定此交集的计算代价过高。
Shapes
,即使Rectangle2D
不与Shape
相交,此方法可能返回true
。与大多数Shape
对象相比,Area
类执行更准确的几何相交计算,因此如果需要更精确的答案,则可以使用该类。- 指定者:
-
intersects
在接口Shape
- 参数:
-
r
- 指定的Rectangle2D
- 返回:
-
如果
Shape
的内部和指定的Rectangle2D
的内部相交,或者两者高度可能相交且计算交集的代价过高,则返回true
;否则返回false
。 - 自版本:
- 1.2
- 参见:
-
contains
public boolean contains(double x, double y, double w, double h) 测试此Line2D
的内部是否完全包含指定的一组矩形坐标。此方法需要实现Shape
接口,但对于Line2D
对象,它总是返回false,因为线条不包含任何区域。 -
contains
测试此Line2D
的内部是否完全包含指定的Rectangle2D
。虽然此方法是为了实现Shape
接口而必需的,但对于Line2D
对象来说,它总是返回false
,因为一条线不包含任何区域。 -
getBounds
返回一个整数Rectangle
,完全包围Shape
。请注意,返回的Rectangle
不一定是包围Shape
的最小边界框,只是确保Shape
完全位于指示的Rectangle
内。如果Shape
超出整数数据类型的有限范围,返回的Rectangle
也可能无法完全包围Shape
。由于getBounds2D
方法在表示上更加灵活,通常返回一个更紧凑的边界框。请注意,内部定义可能导致这样的情况:定义
shape
的轮廓上的点可能不被认为包含在返回的bounds
对象中,但只有在这些点也不被认为包含在原始shape
中的情况下才是如此。如果一个
point
根据contains(point)
方法在shape
内部,那么根据bounds
的contains(point)
方法,它必须在返回的Rectangle
边界对象内部。具体来说:shape.contains(x,y)
要求bounds.contains(x,y)
如果一个
point
不在shape
内部,那么它可能仍然包含在bounds
对象中:bounds.contains(x,y)
不意味着shape.contains(x,y)
-
getPathIterator
返回一个定义此Line2D
边界的迭代对象。此类的迭代器不是多线程安全的,这意味着此Line2D
类不能保证对此Line2D
对象的几何形状的修改不会影响已经在处理中的任何几何形状的迭代。- 指定者:
-
getPathIterator
在接口Shape
中 - 参数:
-
at
- 指定的AffineTransform
- 返回值:
-
一个定义此
Line2D
边界的PathIterator
。 - 自从:
- 1.2
-
getPathIterator
返回一个定义此扁平化Line2D
边界的迭代对象。此类的迭代器不是多线程安全的,这意味着此Line2D
类不能保证对此Line2D
对象的几何形状的修改不会影响已经在处理中的任何几何形状的迭代。- 指定者:
-
getPathIterator
在接口Shape
中 - 参数:
-
at
- 指定的AffineTransform
-
flatness
- 给定曲线的控制点在共线之前可以变化的最大量,以便将一个细分曲线替换为连接端点的直线。由于Line2D
对象始终是平的,此参数被忽略。 - 返回值:
-
一个定义扁平化
Line2D
边界的PathIterator
- 自从:
- 1.2
-
clone
创建一个与此对象相同类的新对象。- 覆盖:
-
clone
在类Object
中 - 返回值:
- 此实例的克隆。
- 抛出:
-
OutOfMemoryError
- 如果内存不足。 - 自从:
- 1.2
- 参见:
-