public abstract class Line2D extends Object implements Shape, Cloneable
Line2D
代表
(x,y)
坐标空间线段。这节课,像所有的java 2D API,使用默认的坐标系统称为空用户空间在Y轴和X轴的值增加值增加向下向右。在用户空间坐标系统的更多信息,参见java 2D程序员指南的
Coordinate Systems节。
这类是所有对象的二维线段,存储的抽象类。坐标的实际存储表示形式留给子类。
Modifier and Type | Class and Description |
---|---|
static class |
Line2D.Double
指定有双坐标的线段。
|
static class |
Line2D.Float
用浮坐标指定的线段。
|
Modifier | Constructor and Description |
---|---|
protected |
Line2D()
这是一个抽象类不能被直接实例化。
|
Modifier and Type | Method and Description |
---|---|
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()
返回一个整数
Rectangle 完全封闭
Shape 。
|
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坐标。
|
abstract double |
getX2()
返回双精度的终点的X坐标。
|
abstract double |
getY1()
以双精度返回起始点的Y坐标。
|
abstract 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) 线段相交这线段。
|
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 结束点的位置。
|
void |
setLine(Line2D l)
设置该
Line2D 为这些终结点指定的
Line2D 相同的结束点的位置。
|
void |
setLine(Point2D p1, Point2D p2)
设置该
Line2D 结束点的位置到指定的
Point2D 坐标。
|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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
对象端点坐标。
public abstract Point2D getP2()
Line2D
结束
Point2D
。
Line2D
结束
Point2D
。
public abstract void setLine(double x1, double y1, double x2, double y2)
Line2D
结束点的位置。
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,它指示方向指定的线必须在结束其第一点,支点
(x1,y1)
,为了点在指定点
(px,py)
。
返回值为1表示该行段必须在向负的Y轴方向的方向上转动。用java 2D使用默认的坐标系统,这是逆时针方向。
- 1的返回值表示该行段必须在向正的Y轴方向的方向上转动。在默认的坐标系统中,这个方向是顺时针的。
一个返回值为0,表明该点完全位于线段上。值得注意的是,0的指标值确定共线是罕见的,没有用因为浮点舍入问题。
如果点与线段共线,但不是终结点之间的值,然后将1如果点在于“超越(x1,y1)
”或1如果点在于“超越(x2,y2)
”。
x1
-指定的线段的起始点坐标
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
的x坐标指定点要与此
Line2D
相比
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
-指定
Point2D
要与此
Line2D
相比
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
-的第一指定线段的起始点坐标
y1
-的第一指定线段的起始点的Y坐标
x2
-的第一指定线段的结束点的X坐标
y2
-的第一指定线段的结束点的Y坐标
x3
-第二指定线段的起始点坐标
y3
-第二指定线段的起始点的Y坐标
x4
-第二指定线段的结束点的X坐标
y4
-第二指定线段的结束点的Y坐标
true
如果第一指定线段和指定的第二个线段相交;
false
否则。
public boolean intersectsLine(double x1, double y1, double x2, double y2)
(x1,y1)
(x2,y2)
线段相交这线段。
x1
-指定的线段的起始点坐标
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
-指定的线段的起始点坐标
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
-指定的线段的起始点坐标
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。
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。
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
-指定点在指定的线路测量坐标
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
-指定点在指定的线路测量坐标
ptSegDist(double, double, double, double, double, double)
public double ptLineDistSq(double px, double py)
Line2D
最近点之间的距离。如果指定的点与线,此方法返回0。
px
-指定点在此线测量X坐标
py
-指定点在此线测量Y坐标
ptSegDistSq(double, double)
public double ptLineDistSq(Point2D pt)
Point2D
这条线。距离测量是指定的点在无限延伸的线定义的这
Line2D
最近点之间的距离。如果指定的点与线,此方法返回0。
pt
-指定
Point2D
反对这条线测量
Point2D
到当前行。
ptSegDistSq(Point2D)
public double ptLineDist(double px, double py)
Line2D
最近点之间的距离。如果指定的点与线,此方法返回0。
px
-指定点在此线测量X坐标
py
-指定点在此线测量Y坐标
ptSegDist(double, double)
public double ptLineDist(Point2D pt)
Point2D
这一行返回的距离。距离测量是指定的点在无限延伸的线定义的这
Line2D
最近点之间的距离。如果指定的点与线,此方法返回0。
pt
-指定被测
Point2D
Point2D
当前线的距离。
ptSegDist(Point2D)
public boolean contains(double x, double y)
public boolean contains(Point2D p)
public boolean intersects(double x, double y, double w, double h)
Shape
测试的内部与一个指定的矩形区域内。矩形区域是相交的
Shape
如果任何点是否包含在内部的
Shape
和指定的矩形区域。
的Shape.intersects()
方法允许Shape
实施保守的回报true
时:
Shape
相交,但Shapes
这个方法可能返回
true
即使矩形区域不相交的
Shape
。的
Area
类执行更精确的计算几何相交比大多数
Shape
对象,因此可以更准确的答案是需要用。
intersects
接口
Shape
x
-指定的矩形区域左上角的x坐标
y
-指定的矩形区域的左上角的Y坐标
w
-指定的矩形区域的宽度
h
-指定矩形区域的高度
true
如果的
Shape
内部与矩形区域内相交,或是相交,相交计算高度可能会执行
false
否则太贵。
Area
public boolean intersects(Rectangle2D r)
Shape
测试的内部与指定的
Rectangle2D
内部,
Shape.intersects()
方法允许
Shape
实施保守的回报
true
时:
Rectangle2D
和Shape
相交,但Shapes
这个方法可能返回
true
即使
Rectangle2D
不相交的
Shape
,
Area
类执行更精确的计算几何相交比大多数
Shape
对象,因此可以更准确的答案是需要用。
intersects
接口
Shape
r
-指定
Rectangle2D
true
如果的
Shape
内部和指定的
Rectangle2D
内部相交,或是相交,相交计算高度可能会执行
false
否则太贵。
Shape.intersects(double, double, double, double)
public boolean contains(double x, double y, double w, double h)
Line2D
内部完全包含一组指定矩形的坐标。这种方法需要实现
Shape
接口,但在
Line2D
对象总是返回false,因为线不包含地区为例。
contains
接口
Shape
x
-指定的矩形区域左上角的x坐标
y
-指定的矩形区域的左上角的Y坐标
w
-指定的矩形区域的宽度
h
-指定矩形区域的高度
false
因为
Line2D
不包含地区。
Area
,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Line2D
内部完全包含指定的
Rectangle2D
。这种方法需要实现
Shape
接口,但在
Line2D
对象,它总是返回
false
由于线路不包含地区为例。
contains
接口
Shape
r
-指定
Rectangle2D
进行测试
false
因为
Line2D
不包含地区。
Shape.contains(double, double, double, double)
public Rectangle getBounds()
Rectangle
完全封闭
Shape
。需要注意的是不能保证返回的
Rectangle
是最小包围盒包围
Shape
,只有
Shape
完全在于在显示
Rectangle
。返回的
Rectangle
也未能完全封闭
Shape
如果
Shape
溢出整数数据类型的范围。的
getBounds2D
方法一般返回一个紧密的包围盒由于在表示其更大的灵活性。
请注意, definition of insideness可导致的情况下,点上的shape
定义轮廓可能不被视为包含在返回的bounds
对象,但只有在这些点的情况下,也不被认为是包含在原始的shape
。
如果一个point
在shape
根据contains(point)
方法,那么它必须在返回的Rectangle
界根据的bounds
的contains(point)
方法对象。明确地:
shape.contains(x,y)
需要bounds.contains(x,y)
如果一个point
是不是在shape
,那么它可能仍然包含在bounds
对象:
bounds.contains(x,y)
并不意味着shape.contains(x,y)
getBounds
接口
Shape
Rectangle
完全封闭
Shape
。
Shape.getBounds2D()
public PathIterator getPathIterator(AffineTransform at)
Line2D
边界。对于这类迭代器不是线程安全的,这意味着这
Line2D
类不保证本
Line2D
修改对象的几何不影响任何迭代几何已经在过程。
getPathIterator
接口
Shape
at
-指定
AffineTransform
PathIterator
定义此
Line2D
边界。
public PathIterator getPathIterator(AffineTransform at, double flatness)
Line2D
边界。对于这类迭代器不是线程安全的,这意味着这
Line2D
类不保证本
Line2D
修改对象的几何不影响任何迭代几何已经在过程。
getPathIterator
接口
Shape
at
-指定
AffineTransform
flatness
,给定曲线的控制点可以从之前的细分曲线是通过共线直线连接终结点替换的最大数量。由于
Line2D
对象始终是平的,这个参数被忽略。
PathIterator
定义平顶
Line2D
边界
public Object clone()
clone
方法重写,继承类
Object
OutOfMemoryError
-如果没有足够的内存。
Cloneable
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.