|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.geom.Line2D
public abstract class 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
,因為線不包含任何區域。
Shape
中的 contains
x
- 將被測試的指定點的 X 坐標y
- 將被測試的指定點的 Y 坐標
false
,因為 Line2D
不包含任何區域。public boolean contains(Point2D p)
Point2D
是否在此 Line2D
的邊界內。此方法需要實作 Shape
介面,但是對於 Line2D
物件來說,它始終返回 false
,因為線不包含任何區域。
Shape
中的 contains
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
Shape
內部與指定 Rectangle2D
內部相交,或者相交的可能性很大且執行計算的代價太高,則返回 true
;否則返回 false
。Shape.intersects(double, double, double, double)
public boolean contains(double x, double y, double w, double h)
Line2D
的內部是否完全包含指定矩形坐標集。此方法需要實作 Shape
介面,但是對於 Line2D
物件來說,它始終返回 false,因為線不包含任何區域。
Shape
中的 contains
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
,因為線不包含任何區域。
Shape
中的 contains
r
- 要測試的指定 Rectangle2D
false
,因為 Line2D
不包含任何區域。Shape.contains(double, double, double, double)
public Rectangle getBounds()
Shape
的整型 Rectangle
。注意,不保證返回的 Rectangle
是包圍 Shape
的最小邊界框,只保證 Shape
完全位於指示的 Rectangle
中。如果 Shape
超出了整數資料型別的有效範圍,則返回的 Rectangle
也可能不完全包圍 Shape
。getBounds2D
方法由於在表示形式上具有更大的靈活性,所以通常返回更緊密的邊界框。
Shape
中的 getBounds
Shape
的整型 Rectangle
。Shape.getBounds2D()
public PathIterator getPathIterator(AffineTransform at)
Line2D
邊界的迭代物件。此類別的迭代器不是多執行緒安全的,這意味著此 Line2D
類別不保證對此 Line2D
物件幾何形狀所作的修改不會影響該幾何形狀中正在進行的迭代。
Shape
中的 getPathIterator
at
- 指定的 AffineTransform
Line2D
的邊界的 PathIterator
。public PathIterator getPathIterator(AffineTransform at, double flatness)
Line2D
邊界的迭代物件。此類別的迭代器不是多執行緒安全的,這意味著此 Line2D
類別不保證對此 Line2D
物件幾何形狀所作的修改不會影響該幾何形狀中正在進行的迭代。
Shape
中的 getPathIterator
at
- 指定的 AffineTransform
flatness
- 在由連接端點的直線取代細分曲線之前,給定曲線的控制點可以從共線變化的最大量。因為 Line2D
物件始終是平的,所以此參數會被忽略。
Line2D
邊界的 PathIterator
public Object clone()
Object
中的 clone
OutOfMemoryError
- 如果沒有足夠的記憶體。Cloneable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。