JavaTM 2 Platform
Standard Ed. 5.0

java.awt.geom
类 Line2D

java.lang.Object
  继承者 java.awt.geom.Line2D
所有已实现的接口:
Shape, Cloneable
直接已知子类:
Line2D.Double, Line2D.Float

public abstract class Line2D
extends Object
implements Shape, Cloneable

Line2D 表示 (x, y) 坐标空间内的线段。像 Java 2D API 的所有类一样,此类使用称为用户空间 的默认坐标系统,其中 Y 轴的值向下增大,X 轴的值向右增大。有关用户空间坐标系统的更多信息,请参阅《Java 2D Programmer's Guide》中的 Coordinate Systems 部分。

此类是所有存储 2D 线段对象的惟一抽象超类。坐标的实际存储表示形式要靠子类来完成。


嵌套类摘要
static class Line2D.Double
          使用 double 坐标指定的线段。
static class Line2D.Float
          使用 float 坐标指定的线段。
 
构造方法摘要
protected Line2D()
          这是一个无法直接实例化的抽象类。
 
方法摘要
 Object clone()
          创建一个与此对象具有相同类的新对象。
 boolean contains(double x, double y)
          测试指定坐标是否在此 Line2D 对象的边界内。
 boolean contains(double x, double y, double w, double h)
          测试此 Line2D 的内部是否完全包含指定矩形坐标集。
 boolean contains(Point2D p)
          测试给定 Point2D 是否在此 Line2D 的边界内。
 boolean contains(Rectangle2D r)
          测试此 Line2D 内部是否完全包含指定的 Rectangle2D
 Rectangle getBounds()
          返回此 Line2D 的边界框。
abstract  Point2D getP1()
          返回此 Line2D 的起始 Point2D
abstract  Point2D getP2()
          返回此 Line2D 的结束 Point2D
 PathIterator getPathIterator(AffineTransform at)
          返回定义此 Line2D 边界的迭代对象。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          返回定义此变平的 Line2D 边界的迭代对象。
abstract  double getX1()
          返回起始点的 X 坐标(以 double 精度形式)。
abstract  double getX2()
          返回结束点的 X 坐标(以 double 精度形式)。
abstract  double getY1()
          返回起始点的 Y 坐标(以 double 精度形式)。
abstract  double getY2()
          返回结束点的 Y 坐标(以 double 精度形式)。
 boolean intersects(double x, double y, double w, double h)
          测试此 Line2D 是否与指定矩形坐标集的内部相交。
 boolean intersects(Rectangle2D r)
          测试此 Line2D 是否与指定 Rectangle2D 的内部相交。
 boolean intersectsLine(double X1, double Y1, double X2, double Y2)
          测试从 (X1, Y1) 到 (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) 相对于此线段的位置的指示符。
static int relativeCCW(double X1, double Y1, double X2, double Y2, double PX, double PY)
          返回指定点 (PX,PY) 相对于从 (X1,Y1) 到 (X2,Y2) 的线段的位置的指示符。
 int relativeCCW(Point2D p)
          返回指定 Point2D 相对于此线段的位置的指示符。
abstract  void setLine(double X1, double Y1, double X2, double Y2)
          将此 Line2D 的端点位置设置为指定的 double 坐标。
 void setLine(Line2D l)
          将此 Line2D 端点的位置设置为与指定 Line2D 的这些端点相同。
 void setLine(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()
这是一个无法直接实例化的抽象类。特定于类型的实现子类可用于实例化,并提供用于存储满足以下各种访问器方法所需信息的许多格式。

另请参见:
Line2D.Float, Line2D.Double
方法详细信息

getX1

public abstract double getX1()
返回起始点的 X 坐标(以 double 精度形式)。

返回:
Line2D 对象起始点的 X 坐标。

getY1

public abstract double getY1()
返回起始点的 Y 坐标(以 double 精度形式)。

返回:
Line2D 对象起始点的 Y 坐标。

getP1

public abstract Point2D getP1()
返回此 Line2D 的起始 Point2D

返回:
Line2D 的起始 Point2D

getX2

public abstract double getX2()
返回结束点的 X 坐标(以 double 精度形式)。

返回:
Line2D 对象起始点的 X 坐标。

getY2

public abstract double getY2()
返回结束点的 Y 坐标(以 double 精度形式)。

返回:
Line2D 对象起始点的 Y 坐标。

getP2

public abstract Point2D getP2()
返回此 Line2D 的结束 Point2D

返回:
作为此 Line2D 端点的 Point2D

setLine

public abstract void setLine(double X1,
                             double Y1,
                             double X2,
                             double Y2)
将此 Line2D 的端点位置设置为指定的 double 坐标。

参数:
X1, Y1 - 第一个指定的坐标
X2, Y2 - 第二个指定的坐标

setLine

public void setLine(Point2D p1,
                    Point2D p2)
将此 Line2D 端点的位置设置为指定的 Point2D 坐标。

参数:
p1, p2 - 指定的 Point2D 对象

setLine

public void setLine(Line2D l)
将此 Line2D 端点的位置设置为与指定 Line2D 的这些端点相同。

参数:
l - 指定的 Line2D

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,指示为指向指定点 (PX, PY),指定的线段必须绕其第一个端点 (X1,Y1) 旋转的方向。

返回值 1 指示线段转动的方向是从 X 正半轴到 Y 负半轴。在 Java 2D 使用的默认坐标系统中,此方向为逆时针方向。

返回值 -1 指示线段转动的方向是从 X 正半轴到 Y 正半轴。在默认的坐标系统中,此方向为顺时针方向。

返回值 0 指示,点恰好位于线段上。注意,指示符 0 是非常罕见的,并且因浮点舍入问题而不可用于确定共线性。

如果点与线段共线,但是不在端点之间,则点位于“(X1,Y1) 之外”时值为 -1,点位于“(X2,Y2) 之外”时值为 1。

参数:
X1, Y1 - 指定线段头的坐标
X2, Y2 - 指定线段尾的坐标
PX, PY - 要与指定线段进行比较的指定点的坐标
返回:
指示第三个指定坐标相对于前两个指定坐标所形成线段的位置的整数。

relativeCCW

public int relativeCCW(double PX,
                       double PY)
返回指定点 (PX, PY) 相对于此线段的位置的指示符。请参见 relativeCCW(double, double, double, double, double, double) 的方法注释以获取对返回值的解释。

参数:
PX, PY - 要与当前线段进行比较的指定点的坐标
返回:
指示指定坐标相对于当前线段的位置的整数。
另请参见:
relativeCCW(double, double, double, double, double, double)

relativeCCW

public int relativeCCW(Point2D p)
返回指定 Point2D 相对于此线段的位置的指示符。请参见 relativeCCW(double, double, double, double, double, double) 的方法注释以获取对返回值的解释。

参数:
p - 要与当前线段进行比较的指定 Point2D 的坐标
返回:
指示 Point2D 相对于当前线段的位置的整数。
另请参见:
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, Y1 - 第一个指定线段头的坐标
X2, Y2 - 第一个指定线段尾的坐标
X3, Y3 - 第二个指定线段头的坐标
X4, Y4 - 第二个指定线段尾的坐标
返回:
如果第一个指定线段与第二个指定线段彼此相交,则返回 true;否则返回 false

intersectsLine

public boolean intersectsLine(double X1,
                              double Y1,
                              double X2,
                              double Y2)
测试从 (X1, Y1) 到 (X2, Y2) 的线段是否与此线段相交。

参数:
X1, Y1 - 指定线段头的坐标
X2, Y2 - 指定线段尾的坐标
返回:
如果此线段与指定线段彼此相交,则返回 true;否则返回 false

intersectsLine

public boolean intersectsLine(Line2D l)
测试指定的线段是否与此线段相交。

参数:
l - 指定的 Line2D
返回:
如果此线段与指定线段彼此相交,则返回 true;否则返回 false

ptSegDistSq

public static double ptSegDistSq(double X1,
                                 double Y1,
                                 double X2,
                                 double Y2,
                                 double PX,
                                 double PY)
返回从点到线段的距离的平方。测量的距离是从指定点到位于指定端点间的最近点之间的距离。如果指定点与线段相交于端点之间,则此方法返回 0.0。

参数:
X1, Y1 - 指定线段头的坐标
X2, Y2 - 指定线段尾的坐标
PX, PY - 要针对指定线段测量的指定点的坐标
返回:
作为从指定点到指定线段的距离的平方的 double 值。
另请参见:
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, Y1 - 指定线段头的坐标
X2, Y2 - 指定线段尾的坐标
PX, PY - 要针对指定线段测量的指定点的坐标
返回:
作为从指定点到指定线段的距离的 double 值。
另请参见:
ptLineDist(double, double, double, double, double, double)

ptSegDistSq

public double ptSegDistSq(double PX,
                          double PY)
返回从点到此线段的距离的平方。测量的距离是从指定点到位于当前线端点间的最近点之间的距离。如果指定点与线段相交于端点之间,则此方法返回 0.0。

参数:
PX, PY - 针对此线段测量的指定点的坐标
返回:
作为从指定点到当前线段的距离平方的 double 值。
另请参见:
ptLineDistSq(double, double)

ptSegDistSq

public double ptSegDistSq(Point2D pt)
返回从 Point2D 到此线段的距离的平方。测量的距离是从指定点到位于当前线端点间的最近点之间的距离。如果指定点与线段相交于端点之间,则此方法返回 0.0。

参数:
pt - 针对此线段测量的指定的 Point2D
返回:
作为从指定 Point2D 到当前线段的距离平方的 double 值。
另请参见:
ptLineDistSq(Point2D)

ptSegDist

public double ptSegDist(double PX,
                        double PY)
返回从点到此线段的距离。测量的距离是从指定点到位于当前线端点间的最近点之间的距离。如果指定点与线段相交于端点之间,则此方法返回 0.0。

参数:
PX, PY - 针对此线段测量的指定点的坐标
返回:
作为从指定点到当前线段的距离的 double 值。
另请参见:
ptLineDist(double, double)

ptSegDist

public double ptSegDist(Point2D pt)
返回从 Point2D 到此线段的距离的平方。测量的距离是从指定点到位于当前线端点间的最近点之间的距离。如果指定点与线段相交于端点之间,则此方法返回 0.0。

参数:
pt - 针对此线段测量的指定 Point2D
返回:
作为从指定 Point2D 到当前线段的距离的 double 值。
另请参见:
ptLineDist(Point2D)

ptLineDistSq

public static double ptLineDistSq(double X1,
                                  double Y1,
                                  double X2,
                                  double Y2,
                                  double PX,
                                  double PY)
返回从点到线的距离的平方。测量的距离是指定点与位于指定坐标定义的无限延长线上的最近点之间的距离。如果指定点与线相交,则此方法返回 0.0。

参数:
X1, Y1 - 指定的线上某个点的坐标
X2, Y2 - 指定的线上另一个点的坐标
PX, PY - 针对指定线测量的指定点的坐标
返回:
作为从指定点到指定线的距离平方的 double 值。
另请参见:
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, Y1 - 指定的线上某个点的坐标
X2, Y2 - 指定的线上另一个点的坐标
PX, PY - 针对指定线测量的指定点的坐标
返回:
作为从指定点到指定线的距离的 double 值。
另请参见:
ptSegDist(double, double, double, double, double, double)

ptLineDistSq

public double ptLineDistSq(double PX,
                           double PY)
返回从点到此线的距离的平方。测量的距离是指定点与位于此 Line2D 定义的无限延长线上的最近点之间的距离。如果指定点与线相交,则此方法返回 0.0。

参数:
PX, PY - 针对此线测量的指定点的坐标
返回:
作为从指定点到当前线的距离平方的 double 值。
另请参见:
ptSegDistSq(double, double)

ptLineDistSq

public double ptLineDistSq(Point2D pt)
返回从指定 Point2D 到此线的距离的平方。测量的距离是指定点与位于此 Line2D 定义的无限延长线上的最近点之间的距离。如果指定点与线相交,则此方法返回 0.0。

参数:
pt - 针对此线测量的指定 Point2D
返回:
作为从指定 Point2D 到当前线段的距离平方的 double 值。
另请参见:
ptSegDistSq(Point2D)

ptLineDist

public double ptLineDist(double PX,
                         double PY)
返回从点到此线的距离。测量的距离是指定点与位于此 Line2D 定义的无限延长线上的最近点之间的距离。如果指定点与线相交,则此方法返回 0.0。

参数:
PX,PY - 针对此线测量的指定点的坐标
返回:
作为从指定点到当前线的距离的 double 值。
另请参见:
ptSegDist(double, double)

ptLineDist

public double ptLineDist(Point2D pt)
返回从 Point2D 到此线的距离。测量的距离是指定点与位于此 Line2D 定义的无限延长线上的最近点之间的距离。如果指定点与线相交,则此方法返回 0.0。

参数:
pt - 要测量的指定 Point2D
返回:
作为从指定 Point2D 到当前线段的距离的 double 值。
另请参见:
ptSegDist(Point2D)

contains

public boolean contains(double x,
                        double y)
测试指定坐标是否在此 Line2D 对象的边界内。此方法需要实现 Shape 接口,但是对于 Line2D 对象来说,它始终返回 false,因为线不包含任何区域。

指定者:
接口 Shape 中的 contains
参数:
x, y - 指定点的坐标
返回:
false,因为 Line2D 不包含任何区域。

contains

public boolean contains(Point2D p)
测试给定 Point2D 是否在此 Line2D 的边界内。此方法需要实现 Shape 接口,但是对于 Line2D 对象来说,它始终返回 false,因为线不包含任何区域。

指定者:
接口 Shape 中的 contains
参数:
p - 要测试的指定 Point2D
返回:
false,因为 Line2D 不包含任何区域。

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
测试此 Line2D 是否与指定矩形坐标集的内部相交。

指定者:
接口 Shape 中的 intersects
参数:
x, y - 指定矩形区域左上角的坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
如果此 Line2D 与指定矩形坐标集的内部相交,则返回 true;否则返回 false
另请参见:
Area

intersects

public boolean intersects(Rectangle2D r)
测试此 Line2D 是否与指定 Rectangle2D 的内部相交。

指定者:
接口 Shape 中的 intersects
参数:
r - 要测试的指定 Rectangle2D
返回:
如果此 Line2D 与指定 Rectangle2D 的内部相交,则返回 true;否则返回 false
另请参见:
Shape.intersects(double, double, double, double)

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
测试此 Line2D 的内部是否完全包含指定矩形坐标集。此方法需要实现 Shape 接口,但是对于 Line2D 对象来说,它始终返回 false,因为线不包含任何区域。

指定者:
接口 Shape 中的 contains
参数:
x, y - 指定矩形区域左上角的坐标
w - 指定矩形区域的宽度
h - 指定矩形区域的高度
返回:
false,因为 Line2D 不包含任何区域。
另请参见:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)
测试此 Line2D 内部是否完全包含指定的 Rectangle2D。此方法需要实现 Shape 接口,但是对于 Line2D 对象来说,它始终返回 false,因为线不包含任何区域。

指定者:
接口 Shape 中的 contains
参数:
r - 要测试的指定 Rectangle2D
返回:
false,因为 Line2D 不包含任何区域。
另请参见:
Shape.contains(double, double, double, double)

getBounds

public Rectangle getBounds()
返回此 Line2D 的边界框。

指定者:
接口 Shape 中的 getBounds
返回:
作为 Line2D 边界框的 Rectangle
另请参见:
Shape.getBounds2D()

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
返回定义此 Line2D 边界的迭代对象。此类的迭代器不是多线程安全的,这意味着此 Line2D 类不保证对此 Line2D 对象几何形状所作的修改不会对该几何形状中正在进行的迭代产生影响。

指定者:
接口 Shape 中的 getPathIterator
参数:
at - 指定的 AffineTransform
返回:
定义此 Line2D 的边界的 PathIterator

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
返回定义此变平的 Line2D 边界的迭代对象。此类的迭代器不是多线程安全的,这意味着此 Line2D 类不保证对此 Line2D 对象几何形状所作的修改不会对该几何形状中正在进行的迭代产生影响。

指定者:
接口 Shape 中的 getPathIterator
参数:
at - 指定的 AffineTransform
flatness - 在由连接端点的直线取代细分曲线之前,给定曲线的控制点可以从共线变化的最大量。因为 Line2D 对象始终是平的,所以此参数会被忽略。
返回:
定义变平的 Line2D 的边界的 PathIterator

clone

public Object clone()
创建一个与此对象具有相同类的新对象。

覆盖:
Object 中的 clone
返回:
此实例的一个副本。
抛出:
OutOfMemoryError - 如果没有足够的内存。
从以下版本开始:
1.2
另请参见:
Cloneable

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策