java.lang.Object java.awt.geom.Line2D
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() 返回一个完全包围 Shape 的整型 Rectangle 。 |
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) 测试 Shape 内部是否与指定矩形区域的内部相交。 |
boolean |
intersects(Rectangle2D r) 测试 Shape 内部是否与指定 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 |
构造方法详细信息 |
---|
protected Line2D()
Line2D.Float
,
Line2D.Double
方法详细信息 |
---|
public abstract double getX1()
Line2D
对象起始点的 X 坐标。
public abstract double getY1()
Line2D
对象起始点的 Y 坐标。
public abstract Point2D getP1()
Line2D
的起始
Point2D
。
Line2D
的起始
Point2D
。
public abstract double getX2()
Line2D
对象结束点的 X 坐标。
public abstract double getY2()
Line2D
对象结束点的 Y 坐标。
public abstract Point2D getP2()
Line2D
的结束
Point2D
。
Line2D
的结束
Point2D
。
public abstract void setLine(double x1, double y1, double x2, double y2)
Line2D
的端点位置设置为指定的 double 坐标。
x1
- 起始点的 X 坐标
y1
- 起始点的 Y 坐标
x2
- 结束点的 X 坐标
y2
- 结束点的 Y 坐标
public void setLine(Point2D p1, Point2D p2)
Line2D
端点的位置设置为指定的
Point2D
坐标。
p1
- 线段的起始
Point2D
p2
- 线段的结束
Point2D
public void setLine(Line2D l)
Line2D
端点的位置设置为与指定
Line2D
的这些端点相同。
l
- 指定的
Line2D
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
- 指定线段起始点的 X 坐标
y1
- 指定线段起始点的 Y 坐标
x2
- 指定线段结束点的 X 坐标
y2
- 指定线段结束点的 Y 坐标
px
- 将与指定线段比较的指定点的 X 坐标
py
- 将与指定线段比较的指定点的 Y 坐标
public int relativeCCW(double px, double py)
(px,py)
相对于此线段的位置。关于返回值的解释,请参见
relativeCCW(double, double, double, double, double, double)
的方法注释。
px
- 将与此
Line2D
比较的指定点的 X 坐标
py
- 将与此
Line2D
比较的指定点的 Y 坐标
Line2D
的位置
relativeCCW(double, double, double, double, double, double)
public int relativeCCW(Point2D p)
Point2D
相对于此线段的位置。关于返回值的解释,请参见
relativeCCW(double, double, double, double, double, double)
的方法注释。
p
- 将与此
Line2D
比较的指定
Point2D
Point2D
相对于此
Line2D
的位置
relativeCCW(double, double, double, double, double, double)
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
。
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
。
public boolean intersectsLine(Line2D l)
l
- 指定的
Line2D
true
;否则返回
false
。
public static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, double py)
x1
- 指定线段起始点的 X 坐标
y1
- 指定线段起始点的 Y 坐标
x2
- 指定线段结束点的 X 坐标
y2
- 指定线段结束点的 Y 坐标
px
- 将对照指定线段进行测量的指定点的 X 坐标
py
- 将对照指定线段进行测量的指定点的 Y 坐标
ptLineDistSq(double, double, double, double, double, double)
public static double ptSegDist(double x1, double y1, double x2, double y2, double px, double py)
x1
- 指定线段起始点的 X 坐标
y1
- 指定线段起始点的 Y 坐标
x2
- 指定线段结束点的 X 坐标
y2
- 指定线段结束点的 Y 坐标
px
- 将对照指定线段进行测量的指定点的 X 坐标
py
- 将对照指定线段进行测量的指定点的 Y 坐标
ptLineDist(double, double, double, double, double, double)
public double ptSegDistSq(double px, double py)
px
- 将对照此线段进行测量的指定点的 X 坐标
py
- 将对照此线段进行测量的指定点的 Y 坐标
ptLineDistSq(double, double)
public double ptSegDistSq(Point2D pt)
Point2D
到此线段的距离的平方。测量的距离是从指定点到位于当前线端点间的最近点之间的距离。如果指定点与线段相交于端点之间,则此方法返回 0.0。
pt
- 将对照此线段进行测量的指定
Point2D
。
Point2D
到当前线段的距离平方。
ptLineDistSq(Point2D)
public double ptSegDist(double px, double py)
px
- 将对照此线段进行测量的指定点的 X 坐标
py
- 将对照此线段进行测量的指定点的 Y 坐标
ptLineDist(double, double)
public double ptSegDist(Point2D pt)
Point2D
到此线段的距离的平方。测量的距离是从指定点到位于当前线端点间的最近点之间的距离。如果指定点与线段相交于端点之间,则此方法返回 0.0。
pt
- 将对照此线段进行测量的指定
Point2D
Point2D
到当前线段的距离。
ptLineDist(Point2D)
public static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, double py)
x1
- 指定线段起始点的 X 坐标
y1
- 指定线段起始点的 Y 坐标
x2
- 指定线段结束点的 X 坐标
y2
- 指定线段结束点的 Y 坐标
px
- 将对照指定线段进行测量的指定点的 X 坐标
py
- 将对照指定线段进行测量的指定点的 Y 坐标
ptSegDistSq(double, double, double, double, double, double)
public static double ptLineDist(double x1, double y1, double x2, double y2, double px, double py)
x1
- 指定线段起始点的 X 坐标
y1
- 指定线段起始点的 Y 坐标
x2
- 指定线段结束点的 X 坐标
y2
- 指定线段结束点的 Y 坐标
px
- 将对照指定线段进行测量的指定点的 X 坐标
py
- 将对照指定线段进行测量的指定点的 Y 坐标
ptSegDist(double, double, double, double, double, double)
public double ptLineDistSq(double px, double py)
Line2D
定义的无限延长线上的最近点之间的距离。如果指定点与线相交,则此方法返回 0.0。
px
- 将对照此线进行测量的指定点的 X 坐标
py
- 将对照此线进行测量的指定点的 Y 坐标
ptSegDistSq(double, double)
public double ptLineDistSq(Point2D pt)
Point2D
到此线的距离的平方。测量的距离是指定点与位于此
Line2D
定义的无限延长线上的最近点之间的距离。如果指定点与线相交,则此方法返回 0.0。
pt
- 将对照此线进行测量的指定
Point2D
Point2D
到当前线的距离平方。
ptSegDistSq(Point2D)
public double ptLineDist(double px, double py)
Line2D
定义的无限延长线上的最近点之间的距离。如果指定点与线相交,则此方法返回 0.0。
px
- 将对照此线进行测量的指定点的 X 坐标
py
- 将对照此线进行测量的指定点的 Y 坐标
ptSegDist(double, double)
public double ptLineDist(Point2D pt)
Point2D
到此线的距离。测量的距离是指定点与位于此
Line2D
定义的无限延长线上的最近点之间的距离。如果指定点与线相交,则此方法返回 0.0。
pt
- 要测量的指定
Point2D
Point2D
到当前线的距离。
ptSegDist(Point2D)
public boolean contains(double x, double y)
Line2D
对象的边界内。此方法需要实现
Shape
接口,但是对于
Line2D
对象来说,它始终返回
false
,因为线不包含任何区域。
x
- 将被测试的指定点的 X 坐标
y
- 将被测试的指定点的 Y 坐标
false
,因为
Line2D
不包含任何区域。
public boolean contains(Point2D p)
Point2D
是否在此
Line2D
的边界内。此方法需要实现
Shape
接口,但是对于
Line2D
对象来说,它始终返回
false
,因为线不包含任何区域。
p
- 要测试的指定
Point2D
false
,因为
Line2D
不包含任何区域。
public boolean intersects(double x, double y, double w, double h)
Shape
内部是否与指定矩形区域的内部相交。如果任何一个点既包含在
Shape
内,又包含在指定矩形区域内,则认为矩形区域与
Shape
相交。
在下列情况下,Shape.intersects()
方法允许 Shape
实现谨慎地返回 true
:
Shape
相交的可能性很大,但是 Shape
,即使矩形区域没有与该
Shape
相交,此方法也可能返回
true
。如果需要更精确的答案,由于
Area
类比大多数
Shape
对象更为准确地计算几何相交,因此可以使用该类。
Shape
中的
intersects
x
- 指定矩形区域左上角的 X 坐标
y
- 指定矩形区域左上角的 Y 坐标
w
- 指定矩形区域的宽度
h
- 指定矩形区域的高度
Shape
的内部区域与矩形的内部区域相交,或者相交的可能性很大且执行计算的代价太高,则返回
true
;否则返回
false
。
Area
public boolean intersects(Rectangle2D r)
Shape
内部是否与指定
Rectangle2D
内部相交。在下列情况下,
Shape.intersects()
方法允许
Shape
实现谨慎地返回
true
:
Rectangle2D
与 Shape
相交的可能性很大,但是 Shape
,即使
Rectangle2D
没有与该
Shape
相交,此方法也可能返回
true
。如果需要更精确的答案,由于
Area
类比大多数
Shape
对象更为准确地计算几何相交,因此可以使用该类。
Shape
中的
intersects
r
- 指定的
Rectangle2D