- java.lang.Object
-
- java.awt.geom.Line2D
-
- 已知直接子类:
-
Line2D.Double
,Line2D.Float
public abstract class Line2D extends Object implements Shape, Cloneable
此Line2D
表示(x,y)
坐标空间中的线段。此类只是存储2D线段的所有对象的抽象超类。 坐标的实际存储表示留给子类。
- 从以下版本开始:
- 1.2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
Line2D.Double
用双坐标指定的线段。static class
Line2D.Float
用浮点坐标指定的线段。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
Line2D()
这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 Object
clone()
创建与此对象相同类的新对象。boolean
contains(double x, double y)
测试指定的坐标是否在该Line2D
的边界内。boolean
contains(double x, double y, double w, double h)
测试这个Line2D
的内部Line2D
完全包含指定的一组直角坐标。boolean
contains(Point2D p)
测试一个给定的Point2D
是否在这个Line2D
的边界内。boolean
contains(Rectangle2D r)
测试这个Line2D
的内部Line2D
完全包含指定的Rectangle2D
。Rectangle
getBounds()
返回一个整数Rectangle
完全包围Shape
。abstract Point2D
getP1()
返回开始Point2D
如此Line2D
。abstract Point2D
getP2()
返回结束Point2D
如此Line2D
。PathIterator
getPathIterator(AffineTransform at)
返回定义此Line2D
边界的迭代对象。PathIterator
getPathIterator(AffineTransform at, double flatness)
返回一个迭代对象,该对象定义了此扁平化的边界Line2D
。abstract double
getX1()
以双精度返回起始点的X坐标。abstract double
getX2()
X-abstract double
getY1()
新新新新200新新200新新200新新200新新200新新200新新200新新新200新新200新新200新新200abstract double
getY2()
以双精度返回终点的Y坐标。boolean
intersects(double x, double y, double w, double h)
测试Shape
的内部是否与指定矩形区域的内部相交。boolean
intersects(Rectangle2D r)
测试Shape
的内部是否与指定的内部相交Rectangle2D
。boolean
intersectsLine(double x1, double y1, double x2, double y2)
测试从(x1,y1)
到(x2,y2)
线段(x2,y2)
与此线段相交。boolean
intersectsLine(Line2D l)
测试指定的线段是否与此线段相交。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
ptSegDist(Point2D pt)
返回从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)
相对于该线段所在的位置的(px,py)
。static int
relativeCCW(double x1, double y1, double x2, double y2, double px, double py)
返回指定点(px,py)
相对于从(x1,y1)
到(x2,y2)
线段的(x1,y1)
的(x2,y2)
。int
relativeCCW(Point2D p)
返回相对于该线段指定的Point2D
位置的指示符。abstract void
setLine(double x1, double y1, double x2, double y2)
将此Line2D
的终点的位置设置为指定的双坐标。void
setLine(Line2D l)
将此Line2D
的终点位置设置为与指定的Line2D
终点相同。void
setLine(Point2D p1, Point2D p2)
将此Line2D
的终点位置设置为指定的Point2D
坐标。-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.awt.Shape
getBounds2D
-
-
-
-
构造方法详细信息
-
Line2D
protected Line2D()
这是一个无法直接实例化的抽象类。 类型特定的实现子类可用于实例化,并提供了许多格式,用于存储满足以下各种附件方法所必需的信息。- 从以下版本开始:
- 1.2
- 另请参见:
-
Line2D.Float
,Line2D.Double
-
-
方法详细信息
-
getX1
public abstract double getX1()
200新新新新200新新200新200新新200新200新新200新新200新新200新新200新新200新新新200新新200- 结果
-
该
Line2D
对象的起始点的X坐标。 - 从以下版本开始:
- 1.2
-
getY1
public abstract double getY1()
新新新新200新新200新新200新新200新新200新新200新新200新新新200新新200新新200新新200- 结果
-
这个
Line2D
对象的起始点的Y坐标。 - 从以下版本开始:
- 1.2
-
getP1
public abstract Point2D getP1()
返回Point2D
的起始Line2D
。- 结果
-
该
Point2D
的起始Line2D
。 - 从以下版本开始:
- 1.2
-
getX2
public abstract double getX2()
X-- 结果
-
该
Line2D
对象的终点的X坐标。 - 从以下版本开始:
- 1.2
-
getY2
public abstract double getY2()
以双精度返回终点的Y坐标。- 结果
-
该
Line2D
对象的终点的Y坐标。 - 从以下版本开始:
- 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
-x1
的X坐标 -
y1
-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)
线段的(x1,y1)
的(x2,y2)
。 返回值可以是1,-1或0,并指示指定的行必须围绕其第一个终点(x1,y1)
枢转,以指向指定点(px,py)
。返回值为1表示线段必须朝向正Y轴的正X轴方向转动。 在Java 2D使用的默认坐标系中,该方向是逆时针方向。
返回值为-1表示线段必须朝向正Y轴取正X轴的方向转动。 在默认坐标系中,该方向为顺时针方向。
返回值为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
- 要与此Line2D
进行比较的指定点的X坐标 -
py
- 要与此Line2D
进行比较的指定点的Y坐标 - 结果
-
一个整数,表示相对于这个
Line2D
的指定坐标的位置 - 从以下版本开始:
- 1.2
- 另请参见:
-
relativeCCW(double, double, double, double, double, double)
-
relativeCCW
public int relativeCCW(Point2D p)
返回相对于该线段指定的Point2D
所在位置的指示符。 请参阅方法注释relativeCCW(double, double, double, double, double, double)
来解释返回值。- 参数
-
p
- 指定的Point2D
要与此Line2D
进行比较 - 结果
-
一个整数,表示指定的
Point2D
相对于该Line2D
- 从以下版本开始:
- 1.2
- 另请参见:
-
relativeCCW(double, double, double, double, double, double)
-
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)
线段(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)
返回从点到线段的距离的平方。 测量的距离是指定点与指定终点之间最近点之间的距离。 如果指定的点与终点之间的线段相交,则此方法返回0.0。- 参数
-
x1
- 指定线段起始点的X坐标 -
y1
- 指定线段起始点的Y坐标 -
x2
- 指定线段终点的X坐标 -
y2
- 指定线段终点的Y坐标 -
px
- 相对于指定线段测量的指定点的X坐标 -
py
- 相对于指定线段测量的指定点的Y坐标 - 结果
- 一个双指数值,即从指定点到指定线段的距离的平方。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptLineDistSq(double, double, double, double, double, double)
-
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
- 另请参见:
-
ptLineDist(double, double, double, double, double, double)
-
ptSegDistSq
public double ptSegDistSq(double px, double py)
返回从点到该线段的距离的平方。 测量的距离是指定点与当前行终点之间最近点之间的距离。 如果指定的点与终点之间的线段相交,则此方法返回0.0。- 参数
-
px
- 针对该线段测量的指定点的X坐标 -
py
- 针对该线段测量的指定点的Y坐标 - 结果
- 一个双指数值,即从指定点到当前线段的距离的平方。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptLineDistSq(double, double)
-
ptSegDistSq
public double ptSegDistSq(Point2D pt)
返回从Point2D
到该线段的距离的平方。 测量的距离是指定点与当前行终点之间最近点之间的距离。 如果指定的点与终点之间的线段相交,则此方法返回0.0。- 参数
-
pt
- 根据该线段测量指定的Point2D
。 - 结果
-
一个双重值,即从指定的
Point2D
到当前线段的距离的平方。 - 从以下版本开始:
- 1.2
- 另请参见:
-
ptLineDistSq(Point2D)
-
ptSegDist
public double ptSegDist(double px, double py)
返回从点到此线段的距离。 测量的距离是指定点与当前行终点之间最近点之间的距离。 如果指定的点与终点之间的线段相交,则此方法返回0.0。- 参数
-
px
- 针对该线段测量的指定点的X坐标 -
py
- 针对该线段测量的指定点的Y坐标 - 结果
- 一个双重值,即从指定点到当前线段的距离。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptLineDist(double, double)
-
ptSegDist
public double ptSegDist(Point2D pt)
返回从Point2D
到此线段的距离。 测量的距离是指定点与当前行终点之间最近点之间的距离。 如果指定的点与终点之间的线段相交,则此方法返回0.0。- 参数
-
pt
- 根据该线段测量指定的Point2D
- 结果
-
一个双重值,即从指定的
Point2D
到当前线段的距离。 - 从以下版本开始:
- 1.2
- 另请参见:
-
ptLineDist(Point2D)
-
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
- 另请参见:
-
ptSegDistSq(double, double, double, double, double, double)
-
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坐标是根据指定的线进行测量 - 结果
- 一个双重值,即从指定点到指定行的距离。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptSegDist(double, double, double, double, double, double)
-
ptLineDistSq
public double ptLineDistSq(double px, double py)
返回从点到此行的距离的平方。 测量的距离是指定点与由该Line2D
定义的无限延伸线之间的最近点之间的距离。 如果指定的点与行相交,则此方法返回0.0。- 参数
-
px
- 针对该行测量的指定点的X坐标 -
py
- 针对该行测量的指定点的Y坐标 - 结果
- 一个双重值,即从指定点到当前行的距离的平方。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptSegDistSq(double, double)
-
ptLineDistSq
public double ptLineDistSq(Point2D pt)
返回从指定的Point2D
到该行的距离的平方。 测量的距离是指定点与由该Line2D
定义的无限延伸线之间的最近点之间的距离。 如果指定的点与行相交,则此方法返回0.0。- 参数
-
pt
- 根据该行测量指定的Point2D
- 结果
-
一个双重值,即从指定的
Point2D
到当前行的距离的平方。 - 从以下版本开始:
- 1.2
- 另请参见:
-
ptSegDistSq(Point2D)
-
ptLineDist
public double ptLineDist(double px, double py)
返回从点到此行的距离。 测量的距离是指定点与由该Line2D
定义的无限延伸线之间的最近点之间的距离。 如果指定的点与行相交,则此方法返回0.0。- 参数
-
px
- 针对该行测量的指定点的X坐标 -
py
- 针对该行测量的指定点的Y坐标 - 结果
- 一个双重值,即从指定点到当前行的距离。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptSegDist(double, double)
-
ptLineDist
public double ptLineDist(Point2D pt)
返回从Point2D
到此行的距离。 测量的距离是指定点与由该Line2D
定义的无限延伸线之间的最近点之间的距离。 如果指定的点与行相交,则此方法返回0.0。- 参数
-
pt
- 正在测量指定的Point2D
- 结果
-
一个双重值,即从指定的
Point2D
到当前行的距离。 - 从以下版本开始:
- 1.2
- 另请参见:
-
ptSegDist(Point2D)
-
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
对象执行几何交集的更精确的计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
intersects
接口Shape
- 参数
-
x
- 指定矩形区域左上角的X坐标 -
y
- 指定矩形区域左上角的Y坐标 -
w
- 指定矩形区域的宽度 -
h
- 指定矩形区域的高度 - 结果
-
true
如果Shape
的内部和矩形区域的内部相交,或者两者都很可能相交,并且交叉点计算将太昂贵执行; 否则为false
。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Area
- 矩形区域与
-
intersects
public boolean intersects(Rectangle2D r)
测试Shape
的内部是否与指定的内部相交Rectangle2D
。Shape.intersects()
方法允许Shape
实现保守返回true
时:-
Rectangle2D
和Shape
相交的概率很高,但是 - 准确地确定这个交叉点的计算是非常昂贵的。
Shapes
这个方法可能会返回true
即使Rectangle2D
不与Shape
相交。Area
类比大多数Shape
对象执行几何交集的更精确的计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
intersects
在接口Shape
- 参数
-
r
- 指定的Rectangle2D
- 结果
-
true
如果Shape
的内部和指定的Rectangle2D
的内部相交,或者很可能相交,并且交叉点计算将太昂贵,不能执行;false
否则。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.intersects(double, double, double, double)
-
-
contains
public boolean contains(double x, double y, double w, double h)
测试这个Line2D
的内部是否包含指定的一组直角坐标。 这种方法是实现Shape
接口所必需的,但在Line2D
对象的情况下,它总是返回false,因为一行不包含区域。- Specified by:
-
contains
接口Shape
- 参数
-
x
- 指定矩形区域左上角的X坐标 -
y
- 指定矩形区域左上角的Y坐标 -
w
- 指定矩形区域的宽度 -
h
- 指定矩形区域的高度 - 结果
-
false
因为一个Line2D
包含区域。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Area
,Shape.intersects(double, double, double, double)
-
contains
public boolean contains(Rectangle2D r)
测试这个Line2D
的内部Line2D
全部包含指定的Rectangle2D
。 这种方法是实现Shape
接口所必需的,但在Line2D
对象的情况下,它总是返回false
因为一行不包含区域。- Specified by:
-
contains
在接口Shape
- 参数
-
r
- 要测试的指定Rectangle2D
- 结果
-
false
因为一个Line2D
包含区域。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.contains(double, double, double, double)
-
getBounds
public Rectangle getBounds()
返回一个整数Rectangle
完全包围Shape
。 请注意,不保证返回的Rectangle
是封闭的最小边界框Shape
,只表示Shape
完全在指定的范围内Rectangle
。 如果Shape
溢出整数数据类型的有限范围,则返回的Rectangle
也可能无法完全包含Shape
。getBounds2D
方法通常返回更严格的边界框,因为它在表示方面具有更大的灵活性。请注意, definition of insideness可能导致shape定义轮廓上的
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
- 结果
-
一个整数
Rectangle
,完全包围了Shape
。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.getBounds2D()
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at)
返回一个定义Line2D
边界的迭代对象。 此类的迭代器不是多线程安全的,这意味着此Line2D
类不保证对此Line2D
对象的几何形状的修改不会影响已处理的该几何的任何迭代。- Specified by:
-
getPathIterator
在接口Shape
- 参数
-
at
- 指定的AffineTransform
- 结果
-
一个
PathIterator
定义了这个Line2D
的边界。 - 从以下版本开始:
- 1.2
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
返回一个迭代对象,该对象定义了此扁平化的边界Line2D
。 此类的迭代器不是多线程安全的,这意味着该Line2D
类不保证对此Line2D
对象的几何的修改不会影响已经在处理的该几何的任何迭代。- Specified by:
-
getPathIterator
接口Shape
- 参数
-
at
- 指定的AffineTransform
-
flatness
- 给定曲线的控制点的最大量可以在将细分曲线替换为连接终点的直线代替之前从共线线变化。 由于Line2D
对象总是平坦的,因此该参数将被忽略。 - 结果
-
一个
PathIterator
定义了平面化的边界Line2D
- 从以下版本开始:
- 1.2
-
clone
public Object clone()
创建与此对象相同类的新对象。- 重写:
-
clone
在Object
- 结果
- 这个实例的一个克隆。
- 异常
-
OutOfMemoryError
- 如果没有足够的内存 - 从以下版本开始:
- 1.2
- 另请参见:
-
Cloneable
-
-