JavaTM 2 Platform
Standard Ed. 6

java.awt
類別 Polygon

java.lang.Object
  繼承者 java.awt.Polygon
所有已實作的介面:
Shape, Serializable

public class Polygon
extends Object
implements Shape, Serializable

Polygon 類別封裝了坐標空間中封閉的二維區域的描述。此區域以任意條線段為邊界,每條線段都是多邊形的一條邊。在內部,一個多邊形包含一列 (x,y) 坐標對,其中每個坐標對(coordinate pair)定義多邊形的一個頂點,且兩個連續的坐標對是多邊形一條邊的端點。第一個和最後一個 (x,y) 坐標對通過一條線段相連,形成一個封閉的多邊形。此 Polygon 是按奇-偶性旋繞規則來定義的。有關奇-偶性旋繞規則的定義,請參見 WIND_EVEN_ODD。此類別的目標測試方法使用 Shape 類別註釋中描述的 insideness 定義,目標測試方法包括 containsintersectsinside 方法。

從以下版本開始:
1.0
另請參見:
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
 

欄位詳細資訊

npoints

public int npoints
點的總數。npoints 的值表示在此 Polygon 中有效的點的數量,該值可以小於 xpointsypoints 中元素的個數。此值可以為 NULL。

從以下版本開始:
1.0
另請參見:
addPoint(int, int)

xpoints

public int[] xpoints
X 坐標的陣列。此陣列中元素的個數可以大於此 Polygon 中 X 坐標的個數。額外的元素允許新的點添加到此 Polygon 中,而無需重新創建此陣列。npoints 的值等於此 Polygon 中有效點的個數。

從以下版本開始:
1.0
另請參見:
addPoint(int, int)

ypoints

public int[] ypoints
Y 坐標的陣列。此陣列中元素的個數可以大於此 Polygon 中 Y 坐標的個數。額外的元素允許新的點添加到 Polygon 中,而無需重新創建此陣列。npoints 的值等於此 Polygon 中有效點的個數。

從以下版本開始:
1.0
另請參見:
addPoint(int, int)

bounds

protected Rectangle bounds
Polygon 的邊界。此值可以為 null。

從以下版本開始:
1.0
另請參見:
getBoundingBox(), getBounds()
建構子詳細資訊

Polygon

public Polygon()
創建空的多邊形。

從以下版本開始:
1.0

Polygon

public Polygon(int[] xpoints,
               int[] ypoints,
               int npoints)
根據指定的參數建構並初始化新的 Polygon

參數:
xpoints - X 坐標的陣列
ypoints - Y 坐標的陣列
npoints - 此 Polygon 中點的總數
拋出:
NegativeArraySizeException - 如果 npoints 為負值。
IndexOutOfBoundsException - 如果 npoints 大於 xpointsypoints 的長度。
NullPointerException - 如果 xpointsypointsnull
從以下版本開始:
1.0
方法詳細資訊

reset

public void reset()
將此 Polygon 物件重置為一個空多邊形。坐標陣列及其中的資料不發生改變,但點的個數被重置為零,以便將舊的頂點資料標記為無效,並且開始從頭累積新的頂點資料。與舊頂點相關的所有內部緩衝的資料都將被丟棄。注意,由於重用了重置之前的坐標陣列,因此在將創建一個新的空 Polygon 與重置當前多邊形相比時,如果新多邊形資料的頂點數遠遠少於重置之前的資料的頂點數,則重新創建將會提高記憶體的效率。

從以下版本開始:
1.4
另請參見:
invalidate()

invalidate

public void invalidate()
所有內部緩衝資料的失效或刷新都依賴於此 Polygon 的頂點坐標。此方法應該在完成對 xpointsypoints 陣列中坐標的直接操作之後被調用,以避免產生與 getBoundscontains 這樣的方法不一致的結果,後者這些方法可能從與頂點坐標相關聯的更早的計算中緩衝資料。

從以下版本開始:
1.4
另請參見:
getBounds()

translate

public void translate(int deltaX,
                      int deltaY)
Polygon 的頂點進行平移,沿 x 軸移動 deltaX,沿 y 移動 deltaY

參數:
deltaX - 沿 X 軸移動的量
deltaY - 沿 Y 軸移動的量
從以下版本開始:
1.1

addPoint

public void addPoint(int x,
                     int y)
將指定的坐標追加到此 Polygon

如果已經執行了計算此 Polygon 的邊界框的操作,例如 getBoundscontains,則此方法將更新邊界框。

參數:
x - 指定的 X 坐標
y - 指定的 Y 坐標
從以下版本開始:
1.0
另請參見:
getBounds(), contains(java.awt.Point)

getBounds

public Rectangle getBounds()
獲取此 Polygon 的邊界框。邊界框是最小的 Rectangle,其邊平行於坐標空間的 x 軸和 y 軸,且能夠完全包含 Polygon

指定者:
介面 Shape 中的 getBounds
返回:
返回定義此 Polygon 邊界的 Rectangle
從以下版本開始:
1.1
另請參見:
Shape.getBounds2D()

getBoundingBox

@Deprecated
public Rectangle getBoundingBox()
已過時。 從 JDK version 1.1 開始,由 getBounds() 取代。

返回此 Polygon 的邊界。

返回:
返回此 Polygon 的邊界。
從以下版本開始:
1.0

contains

public boolean contains(Point p)
確定指定的 Point 是否位於此 Polygon 的內部。

參數:
p - 要測試的指定的 Point
返回:
如果 Polygon 套件含 Point,則返回 true;否則返回 false
從以下版本開始:
1.0
另請參見:
contains(double, double)

contains

public boolean contains(int x,
                        int y)
確定指定的坐標是否位於此 Polygon 的內部。

參數:
x - 要測試的指定的 X 坐標
y - 要測試的指定的 Y 坐標
返回:
如果此 Polygon 套件含指定的坐標 (x,y),則返回 true;否則返回 false
從以下版本開始:
1.1
另請參見:
contains(double, double)

inside

@Deprecated
public boolean inside(int x,
                                 int y)
已過時。 從 JDK version 1.1 開始, 此函數為 contains(int, int)

確定此 Polygon 是否包含指定的坐標。

參數:
x - 要測試的指定的 X 坐標
y - 要測試的指定的 Y 坐標
返回:
如果此 Polygon 套件含指定的坐標 (x,y),則返回 true;否則返回 false
從以下版本開始:
1.0
另請參見:
contains(double, double)

getBounds2D

public Rectangle2D getBounds2D()
返回一個高精度的、比 getBounds 方法更準確的 Shape 邊界框。注意,不保證返回的 Rectangle2D 是包圍 Shape 的最小邊界框,只保證 Shape 完全位於指示的 Rectangle2D 中。此方法返回的邊界框通常比 getBounds 方法返回的更緊密,而且永遠不會因為溢位問題而出錯,因為返回值可以是一個使用雙精度值存儲尺寸的 Rectangle2D 實例。

指定者:
介面 Shape 中的 getBounds2D
返回:
一個 Rectangle2D 實例,它是 Shape 的高精度邊界框。
從以下版本開始:
1.2
另請參見:
Shape.getBounds()

contains

public boolean contains(double x,
                        double y)
測試指定坐標是否在 Shape 的邊界內。

指定者:
介面 Shape 中的 contains
參數:
x - 要測試的指定的 X 坐標
y - 要測試的指定的 Y 坐標
返回:
如果指定坐標在 Shape 邊界內,則返回 true;否則返回 false
從以下版本開始:
1.2

contains

public boolean contains(Point2D p)
測試指定的 Point2D 是否在 Shape 的邊界內。

指定者:
介面 Shape 中的 contains
參數:
p - 要測試的指定的 Point2D
返回:
如果指定的 Point2DShape 邊界內,則返回 true;否則返回 false
從以下版本開始:
1.2

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
測試 Shape 內部是否與指定矩形區域的內部相交。如果任何一個點既包含在 Shape 內,又包含在指定矩形區域內,則認為矩形區域與 Shape 相交。

在下列情況下,Shape.intersects() 方法允許 Shape 實作謹慎地返回 true

這意味著對於某些 Shape,即使矩形區域沒有與該 Shape 相交,此方法也可能返回 true。如果需要更精確的答案,由於 Area 類別比大多數 Shape 物件更為準確地計算幾何相交,因此可以使用該類別。

指定者:
介面 Shape 中的 intersects
參數:
x - 指定矩形區域左上角的 X 坐標
y - 指定矩形區域左上角的 Y 坐標
w - 指定矩形區域的寬度
h - 指定矩形區域的高度
返回:
如果 Shape 的內部區域與矩形的內部區域相交,或者相交的可能性很大且執行計算的代價太高,則返回 true;否則返回 false
從以下版本開始:
1.2
另請參見:
Area

intersects

public boolean intersects(Rectangle2D r)
測試 Shape 內部是否與指定 Rectangle2D 內部相交。在下列情況下,Shape.intersects() 方法允許 Shape 實作謹慎地返回 true 這意味著對於某些 Shape,即使 Rectangle2D 沒有與該 Shape 相交,此方法也可能返回 true。如果需要更精確的答案,由於 Area 類別比大多數 Shape 物件更為準確地計算幾何相交,因此可以使用該類別。

指定者:
介面 Shape 中的 intersects
參數:
r - 指定的 Rectangle2D
返回:
如果 Shape 內部與指定 Rectangle2D 內部相交,或者相交的可能性很大且執行計算的代價太高,則返回 true;否則返回 false
從以下版本開始:
1.2
另請參見:
Shape.intersects(double, double, double, double)

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
測試 Shape 內部是否完全包含指定矩形區域。矩形區域內的所有坐標都必須位於 Shape 中,才可以認為整個矩形區域包含在 Shape中。

在下列情況下,Shape.contains() 方法允許 Shape 實作謹慎地返回 false

這意味著對於某些 Shape,即使 Shape 套件含矩形區域,此方法也可能返回 false。如果需要更精確的答案,由於 Area 類別比大多數 Shape 物件更為準確地執行幾何計算,因此可以使用該類別。

指定者:
介面 Shape 中的 contains
參數:
x - 指定矩形區域左上角的 X 坐標
y - 指定矩形區域左上角的 Y 坐標
w - 指定矩形區域的寬度
h - 指定矩形區域的高度
返回:
如果 Shape 內部完全包含指定矩形區域,則返回 true;否則,如果 Shape 套件含矩形區域、intersects 方法返回 true 且執行包含計算代價太高,則返回 false
從以下版本開始:
1.2
另請參見:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)
測試 Shape 內部是否完全包含指定的 Rectangle2D。在下列情況下,Shape.contains() 方法允許 Shape 實作謹慎地返回 false 這意味著對於某些 Shape,即使 Shape 套件含 Rectangle2D,此方法也可能返回 false。如果需要更精確的答案,由於 Area 類別比大多數 Shape 物件更為準確地執行幾何計算,因此可以使用該類別。

指定者:
介面 Shape 中的 contains
參數:
r - 指定的 Rectangle2D
返回:
如果 Shape 內部完全包含 Rectangle2D,則返回 true;否則,如果 Shape 套件含 Rectangle2Dintersects 方法返回 true 且執行包含計算代價太高,則返回 false
從以下版本開始:
1.2
另請參見:
Shape.contains(double, double, double, double)

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
返回迭代器物件,此物件沿此 Polygon 的邊界進行迭代,並且提供對此 Polygon 輪廓的幾何形狀的存取。可以指定一個可選的 AffineTransform,以便對迭代中返回的坐標進行相應的轉換。

指定者:
介面 Shape 中的 getPathIterator
參數:
at - 坐標在迭代中返回時,要應用於這些坐標的可選的 AffineTransform,或者需要撤消轉換時為 null
返回:
PathIterator 物件,該物件提供對此 Polygon 的幾何形狀的存取。
從以下版本開始:
1.2

getPathIterator

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 物件的幾何形狀的存取。
從以下版本開始:
1.2

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only