|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.Polygon
public class Polygon
Polygon
類別封裝了坐標空間中封閉的二維區域的描述。此區域以任意條線段為邊界,每條線段都是多邊形的一條邊。在內部,一個多邊形包含一列 (x,y)
坐標對,其中每個坐標對(coordinate pair)定義多邊形的一個頂點,且兩個連續的坐標對是多邊形一條邊的端點。第一個和最後一個 (x,y)
坐標對通過一條線段相連,形成一個封閉的多邊形。此 Polygon
是按奇-偶性旋繞規則來定義的。有關奇-偶性旋繞規則的定義,請參見 WIND_EVEN_ODD
。此類別的目標測試方法使用 Shape
類別註釋中描述的 insideness 定義,目標測試方法包括 contains
、intersects
和 inside
方法。
Shape
,
序列化表格欄位摘要 | |
---|---|
protected Rectangle |
bounds
此 Polygon 的邊界。 |
int |
npoints
點的總數。 |
int[] |
xpoints
X 坐標的陣列。 |
int[] |
ypoints
Y 坐標的陣列。 |
建構子摘要 | |
---|---|
Polygon()
創建空的多邊形。 |
|
Polygon(int[] xpoints,
int[] ypoints,
int npoints)
根據指定的參數建構並初始化新的 Polygon 。 |
方法摘要 | |
---|---|
void |
addPoint(int x,
int y)
將指定的坐標追加到此 Polygon 。 |
boolean |
contains(double x,
double y)
測試指定坐標是否在 Shape 的邊界內。 |
boolean |
contains(double x,
double y,
double w,
double h)
測試 Shape 內部是否完全包含指定矩形區域。 |
boolean |
contains(int x,
int y)
確定指定的坐標是否位於此 Polygon 的內部。 |
boolean |
contains(Point p)
確定指定的 Point 是否位於此 Polygon 的內部。 |
boolean |
contains(Point2D p)
測試指定的 Point2D 是否在 Shape 的邊界內。 |
boolean |
contains(Rectangle2D r)
測試 Shape 內部是否完全包含指定的 Rectangle2D 。 |
Rectangle |
getBoundingBox()
已過時。 從 JDK version 1.1 開始,由 getBounds() 取代。 |
Rectangle |
getBounds()
獲取此 Polygon 的邊界框。 |
Rectangle2D |
getBounds2D()
返回一個高精度的、比 getBounds 方法更準確的 Shape 邊界框。 |
PathIterator |
getPathIterator(AffineTransform at)
返回迭代器物件,此物件沿此 Polygon 的邊界進行迭代,並且提供對此 Polygon 輪廓的幾何形狀的存取。 |
PathIterator |
getPathIterator(AffineTransform at,
double flatness)
返回迭代器物件,此物件沿 Shape 的邊界進行迭代,並且提供了對 Shape 輪廓的幾何形狀的存取。 |
boolean |
inside(int x,
int y)
已過時。 從 JDK version 1.1 開始, 此函數為 contains(int, int) 。 |
boolean |
intersects(double x,
double y,
double w,
double h)
測試 Shape 內部是否與指定矩形區域的內部相交。 |
boolean |
intersects(Rectangle2D r)
測試 Shape 內部是否與指定 Rectangle2D 內部相交。 |
void |
invalidate()
所有內部緩衝資料的失效或刷新都依賴於此 Polygon 的頂點坐標。 |
void |
reset()
將此 Polygon 物件重置為一個空多邊形。 |
void |
translate(int deltaX,
int deltaY)
對 Polygon 的頂點進行平移,沿 x 軸移動 deltaX ,沿 y 移動 deltaY 。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
public int npoints
npoints
的值表示在此 Polygon
中有效的點的數量,該值可以小於 xpoints
或 ypoints
中元素的個數。此值可以為 NULL。
addPoint(int, int)
public int[] xpoints
Polygon
中 X 坐標的個數。額外的元素允許新的點添加到此 Polygon
中,而無需重新創建此陣列。npoints
的值等於此 Polygon
中有效點的個數。
addPoint(int, int)
public int[] ypoints
Polygon
中 Y 坐標的個數。額外的元素允許新的點添加到 Polygon
中,而無需重新創建此陣列。npoints
的值等於此 Polygon
中有效點的個數。
addPoint(int, int)
protected Rectangle bounds
Polygon
的邊界。此值可以為 null。
getBoundingBox()
,
getBounds()
建構子詳細資訊 |
---|
public Polygon()
public Polygon(int[] xpoints, int[] ypoints, int npoints)
Polygon
。
xpoints
- X 坐標的陣列ypoints
- Y 坐標的陣列npoints
- 此 Polygon
中點的總數
NegativeArraySizeException
- 如果 npoints
為負值。
IndexOutOfBoundsException
- 如果 npoints
大於 xpoints
或 ypoints
的長度。
NullPointerException
- 如果 xpoints
或 ypoints
為 null
。方法詳細資訊 |
---|
public void reset()
Polygon
物件重置為一個空多邊形。坐標陣列及其中的資料不發生改變,但點的個數被重置為零,以便將舊的頂點資料標記為無效,並且開始從頭累積新的頂點資料。與舊頂點相關的所有內部緩衝的資料都將被丟棄。注意,由於重用了重置之前的坐標陣列,因此在將創建一個新的空 Polygon
與重置當前多邊形相比時,如果新多邊形資料的頂點數遠遠少於重置之前的資料的頂點數,則重新創建將會提高記憶體的效率。
invalidate()
public void invalidate()
Polygon
的頂點坐標。此方法應該在完成對 xpoints
或 ypoints
陣列中坐標的直接操作之後被調用,以避免產生與 getBounds
或 contains
這樣的方法不一致的結果,後者這些方法可能從與頂點坐標相關聯的更早的計算中緩衝資料。
getBounds()
public void translate(int deltaX, int deltaY)
Polygon
的頂點進行平移,沿 x 軸移動 deltaX
,沿 y 移動 deltaY
。
deltaX
- 沿 X 軸移動的量deltaY
- 沿 Y 軸移動的量public void addPoint(int x, int y)
Polygon
。
如果已經執行了計算此 Polygon
的邊界框的操作,例如 getBounds
或 contains
,則此方法將更新邊界框。
x
- 指定的 X 坐標y
- 指定的 Y 坐標getBounds()
,
contains(java.awt.Point)
public Rectangle getBounds()
Polygon
的邊界框。邊界框是最小的 Rectangle
,其邊平行於坐標空間的 x 軸和 y 軸,且能夠完全包含 Polygon
。
Shape
中的 getBounds
Polygon
邊界的 Rectangle
。Shape.getBounds2D()
@Deprecated public Rectangle getBoundingBox()
getBounds()
取代。
Polygon
的邊界。
Polygon
的邊界。public boolean contains(Point p)
Point
是否位於此 Polygon
的內部。
p
- 要測試的指定的 Point
Polygon
套件含 Point
,則返回 true
;否則返回 false
。contains(double, double)
public boolean contains(int x, int y)
Polygon
的內部。
x
- 要測試的指定的 X 坐標y
- 要測試的指定的 Y 坐標
Polygon
套件含指定的坐標 (x,y)
,則返回 true
;否則返回 false
。contains(double, double)
@Deprecated public boolean inside(int x, int y)
contains(int, int)
。
Polygon
是否包含指定的坐標。
x
- 要測試的指定的 X 坐標y
- 要測試的指定的 Y 坐標
Polygon
套件含指定的坐標 (x,y)
,則返回 true
;否則返回 false
。contains(double, double)
public Rectangle2D getBounds2D()
getBounds
方法更準確的 Shape
邊界框。注意,不保證返回的 Rectangle2D
是包圍 Shape
的最小邊界框,只保證 Shape
完全位於指示的 Rectangle2D
中。此方法返回的邊界框通常比 getBounds
方法返回的更緊密,而且永遠不會因為溢位問題而出錯,因為返回值可以是一個使用雙精度值存儲尺寸的 Rectangle2D
實例。
Shape
中的 getBounds2D
Rectangle2D
實例,它是 Shape
的高精度邊界框。Shape.getBounds()
public boolean contains(double x, double y)
Shape
的邊界內。
Shape
中的 contains
x
- 要測試的指定的 X 坐標y
- 要測試的指定的 Y 坐標
Shape
邊界內,則返回 true
;否則返回 false
。public boolean contains(Point2D p)
Point2D
是否在 Shape
的邊界內。
Shape
中的 contains
p
- 要測試的指定的 Point2D
Point2D
在 Shape
邊界內,則返回 true
;否則返回 false
。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)
Shape
內部是否完全包含指定矩形區域。矩形區域內的所有坐標都必須位於 Shape
中,才可以認為整個矩形區域包含在 Shape
中。
在下列情況下,Shape.contains()
方法允許 Shape
實作謹慎地返回 false
:
intersect
方法返回 true
並且
Shape
是否完全包含矩形區域的代價太高。
Shape
,即使 Shape
套件含矩形區域,此方法也可能返回 false
。如果需要更精確的答案,由於 Area
類別比大多數 Shape
物件更為準確地執行幾何計算,因此可以使用該類別。
Shape
中的 contains
x
- 指定矩形區域左上角的 X 坐標y
- 指定矩形區域左上角的 Y 坐標w
- 指定矩形區域的寬度h
- 指定矩形區域的高度
Shape
內部完全包含指定矩形區域,則返回 true
;否則,如果 Shape
套件含矩形區域、intersects
方法返回 true
且執行包含計算代價太高,則返回 false
。Area
,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Shape
內部是否完全包含指定的 Rectangle2D
。在下列情況下,Shape.contains()
方法允許 Shape
實作謹慎地返回 false
:
intersect
方法返回 true
並且
Shape
是否完全包含 Rectangle2D
的代價太高。
Shape
,即使 Shape
套件含 Rectangle2D
,此方法也可能返回 false
。如果需要更精確的答案,由於 Area
類別比大多數 Shape
物件更為準確地執行幾何計算,因此可以使用該類別。
Shape
中的 contains
r
- 指定的 Rectangle2D
Shape
內部完全包含 Rectangle2D
,則返回 true
;否則,如果 Shape
套件含 Rectangle2D
、intersects
方法返回 true
且執行包含計算代價太高,則返回 false
。Shape.contains(double, double, double, double)
public PathIterator getPathIterator(AffineTransform at)
Polygon
的邊界進行迭代,並且提供對此 Polygon
輪廓的幾何形狀的存取。可以指定一個可選的 AffineTransform
,以便對迭代中返回的坐標進行相應的轉換。
Shape
中的 getPathIterator
at
- 坐標在迭代中返回時,要應用於這些坐標的可選的 AffineTransform
,或者需要撤消轉換時為 null
PathIterator
物件,該物件提供對此 Polygon
的幾何形狀的存取。public PathIterator getPathIterator(AffineTransform at, double flatness)
Shape
的邊界進行迭代,並且提供了對 Shape
輪廓的幾何形狀的存取。迭代器只返回 SEG_MOVETO、SEG_LINETO 和 SEG_CLOSE 點型別。由於多邊形是平面的,因此可以忽略 flatness
參數。可以指定可選的 AffineTransform
,在這種情況下相應地轉換在迭代返回的坐標。
Shape
中的 getPathIterator
at
- 坐標在迭代中返回時,要應用於這些坐標的可選的 AffineTransform
,或者需要撤消轉換時為 null
flatness
- 在使用連接端點的直線取代細分的曲線之前,給定曲線的控制點可以從共線變化的最大量。由於多平形是平面的,因此可以忽略 flatness
參數。
PathIterator
物件,此物件提供對 Shape
物件的幾何形狀的存取。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。