- 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
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static classLine2D.Double用双坐标指定的线段。static classLine2D.Float用浮点坐标指定的线段。
-
构造方法摘要
构造方法 变量 构造器 描述 protectedLine2D()这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 Objectclone()创建与此对象相同的类的新对象。booleancontains(double x, double y)测试指定的坐标是否在此Line2D的边界内。booleancontains(double x, double y, double w, double h)测试此Line2D的内部Line2D完全包含指定的直角坐标集。booleancontains(Point2D p)如果给定的测试Point2D就是这个边界内Line2D。booleancontains(Rectangle2D r)测试此Line2D的内部Line2D完全包含指定的Rectangle2D。RectanglegetBounds()返回一个整数Rectangle完全包围Shape。abstract Point2DgetP1()返回开始Point2D如此Line2D。abstract Point2DgetP2()返回Point2D的结尾Line2D。PathIteratorgetPathIterator(AffineTransform at)返回定义此Line2D边界的迭代对象。PathIteratorgetPathIterator(AffineTransform at, double flatness)返回一个迭代对象,该对象定义此展平的边界Line2D。abstract doublegetX1()以double精度返回起始点的X坐标。abstract doublegetX2()以double精度返回结束点的X坐标。abstract doublegetY1()以double精度返回起始点的Y坐标。abstract doublegetY2()以double精度返回结束点的Y坐标。booleanintersects(double x, double y, double w, double h)测试Shape的内部是否与指定矩形区域的内部相交。booleanintersects(Rectangle2D r)测试Shape的内部是否与指定的Rectangle2D的内部相交。booleanintersectsLine(double x1, double y1, double x2, double y2)测试从(x1,y1)到(x2,y2)线段(x2,y2)与此线段相交。booleanintersectsLine(Line2D l)测试指定的线段是否与此线段相交。static booleanlinesIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)测试,如果线段从(x1,y1)到(x2,y2)相交的线段从(x3,y3)到(x4,y4)。doubleptLineDist(double px, double py)返回从点到此线的距离。static doubleptLineDist(double x1, double y1, double x2, double y2, double px, double py)返回从点到线的距离。doubleptLineDist(Point2D pt)返回从Point2D到此行的距离。doubleptLineDistSq(double px, double py)返回从点到此线的距离的平方。static doubleptLineDistSq(double x1, double y1, double x2, double y2, double px, double py)返回从点到线的距离的平方。doubleptLineDistSq(Point2D pt)返回从指定的Point2D到此行的距离的平方。doubleptSegDist(double px, double py)返回从点到此线段的距离。static doubleptSegDist(double x1, double y1, double x2, double y2, double px, double py)返回从点到线段的距离。doubleptSegDist(Point2D pt)返回从Point2D到此线段的距离。doubleptSegDistSq(double px, double py)返回从点到此线段的距离的平方。static doubleptSegDistSq(double x1, double y1, double x2, double y2, double px, double py)返回从点到线段的距离的平方。doubleptSegDistSq(Point2D pt)返回从Point2D到此线段的距离的平方。intrelativeCCW(double px, double py)返回指定点(px,py)相对于此线段的位置的(px,py)。static intrelativeCCW(double x1, double y1, double x2, double y2, double px, double py)返回指定点(px,py)相对于从(x1,y1)到(x2,y2)线段的(x1,y1)的(x2,y2)。intrelativeCCW(Point2D p)返回指定Point2D相对于此线段的位置的指示符。abstract voidsetLine(double x1, double y1, double x2, double y2)将此Line2D的端点的位置设置为指定的双坐标。voidsetLine(Line2D l)将此Line2D的端点位置设置为与指定的Line2D。voidsetLine(Point2D p1, Point2D p2)将此Line2D的终点位置设置为指定的Point2D坐标。-
声明方法的类 java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
声明方法的接口 java.awt.Shape
getBounds2D
-
-
-
-
构造方法详细信息
-
Line2D
protected Line2D()
这是一个无法直接实例化的抽象类。 特定于类型的实现子类可用于实例化,并提供多种格式用于存储满足以下各种附件方法所必需的信息。- 从以下版本开始:
- 1.2
- 另请参见:
-
Line2D.Float,Line2D.Double
-
-
方法详细信息
-
getX1
public abstract double getX1()
以double精度返回起始点的X坐标。- 结果
-
此
Line2D对象的起点的X坐标。 - 从以下版本开始:
- 1.2
-
getY1
public abstract double getY1()
以double精度返回起始点的Y坐标。- 结果
-
此
Line2D对象的起点的Y坐标。 - 从以下版本开始:
- 1.2
-
getP1
public abstract Point2D getP1()
返回开始Point2D如此Line2D。- 结果
-
开始
Point2D如此Line2D。 - 从以下版本开始:
- 1.2
-
getX2
public abstract double getX2()
以double精度返回结束点的X坐标。- 结果
-
此
Line2D对象的终点的X坐标。 - 从以下版本开始:
- 1.2
-
getY2
public abstract double getY2()
以double精度返回结束点的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表示线段必须在使正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)相对于此线段的位置的(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进行比较 - 结果
-
一个整数,指示相对于此
Line2D的指定Point2D的位置 - 从以下版本开始:
- 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坐标 - 结果
- 一个double值,它是从指定点到指定线段的距离的平方。
- 从以下版本开始:
- 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坐标 - 结果
- 一个double值,它是指定点到指定线段的距离。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptLineDist(double, double, double, double, double, double)
-
ptSegDistSq
public double ptSegDistSq(double px, double py)返回从点到此线段的距离的平方。 测量的距离是指定点与当前线的终点之间的最近点之间的距离。 如果指定的点与端点之间的线段相交,则此方法返回0.0。- 参数
-
px- 针对此线段测量的指定点的X坐标 -
py- 针对此线段测量的指定点的Y坐标 - 结果
- 一个double值,它是从指定点到当前线段的距离的平方。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptLineDistSq(double, double)
-
ptSegDistSq
public double ptSegDistSq(Point2D pt)
返回从Point2D到此线段的距离的平方。 测量的距离是指定点与当前线的终点之间的最近点之间的距离。 如果指定的点与端点之间的线段相交,则此方法返回0.0。- 参数
-
pt- 针对此线段测量的指定Point2D。 - 结果
-
一个double值,它是从指定的
Point2D到当前线段的距离的平方。 - 从以下版本开始:
- 1.2
- 另请参见:
-
ptLineDistSq(Point2D)
-
ptSegDist
public double ptSegDist(double px, double py)返回从点到此线段的距离。 测量的距离是指定点与当前线的终点之间的最近点之间的距离。 如果指定的点与端点之间的线段相交,则此方法返回0.0。- 参数
-
px- 针对此线段测量的指定点的X坐标 -
py- 针对此线段测量的指定点的Y坐标 - 结果
- 一个double值,它是指定点到当前线段的距离。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptLineDist(double, double)
-
ptSegDist
public double ptSegDist(Point2D pt)
返回从Point2D到此线段的距离。 测量的距离是指定点与当前线的终点之间的最近点之间的距离。 如果指定的点与端点之间的线段相交,则此方法返回0.0。- 参数
-
pt- 针对此线段测量的指定Point2D - 结果
-
一个double值,它是指定的
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坐标 - 结果
- 一个double值,它是从指定点到指定行的距离的平方。
- 从以下版本开始:
- 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坐标 - 结果
- 一个double值,它是指定点到指定行的距离。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptSegDist(double, double, double, double, double, double)
-
ptLineDistSq
public double ptLineDistSq(double px, double py)返回从点到此线的距离的平方。 测量的距离是指定点与由此Line2D定义的无限延长线上的最近点之间的距离。 如果指定的点与线相交,则此方法返回0.0。- 参数
-
px- 针对此线测量的指定点的X坐标 -
py- 针对此线测量的指定点的Y坐标 - 结果
- 一个double值,它是从指定点到当前行的距离的平方。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptSegDistSq(double, double)
-
ptLineDistSq
public double ptLineDistSq(Point2D pt)
返回从指定的Point2D到此行的距离的平方。 测量的距离是指定点与此Line2D定义的无限延长线上最近点之间的距离。 如果指定的点与线相交,则此方法返回0.0。- 参数
-
pt- 针对此行测量的指定Point2D - 结果
-
一个double值,它是从指定的
Point2D到当前行的距离的平方。 - 从以下版本开始:
- 1.2
- 另请参见:
-
ptSegDistSq(Point2D)
-
ptLineDist
public double ptLineDist(double px, double py)返回从点到此线的距离。 测量的距离是指定点与由此Line2D定义的无限延长线上的最近点之间的距离。 如果指定的点与线相交,则此方法返回0.0。- 参数
-
px- 针对此线测量的指定点的X坐标 -
py- 针对此线测量的指定点的Y坐标 - 结果
- 一个double值,它是指定点到当前行的距离。
- 从以下版本开始:
- 1.2
- 另请参见:
-
ptSegDist(double, double)
-
ptLineDist
public double ptLineDist(Point2D pt)
返回从Point2D到此行的距离。 测量的距离是指定点与由此Line2D定义的无限延长线上的最近点之间的距离。 如果指定的点与线相交,则此方法返回0.0。- 参数
-
pt- 正在测量的指定的Point2D - 结果
-
一个double值,它是指定的
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实现在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实现在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的内部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可能会导致4659663575173定义轮廓上的
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- 在将细分曲线替换为连接端点的直线之前,给定曲线的控制点的最大量可以flatness线变化。 由于Line2D对象始终为flat,因此将忽略此参数。 - 结果
-
PathIterator,用于定义展平Line2D的边界 - 从以下版本开始:
- 1.2
-
clone
public Object clone()
创建与此对象相同的类的新对象。- 重写:
-
clone在课程Object - 结果
- 这个实例的克隆。
- 异常
-
OutOfMemoryError- 如果没有足够的内存。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Cloneable
-
-