|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface Shape
Shape
介面提供了表示一些幾何形狀的物件的定義。Shape
是由 PathIterator
物件描述的,它可以表示 Shape
的輪廓以及確定該輪廓如何將 2D 平面劃分成內點和外點的規則。每個 Shape
物件都提供回調,以獲取幾何形狀的邊框,確定點或矩形是部分還是全部位於 Shape
內部,並檢索一個描述 Shape
輪廓的軌跡路徑的 PathIterator
物件。
內部定義:當且僅當以下條件成立時,才認為某個點位於 Shape
內:
Shape
邊界內,或者
Shape
邊界上,並且 X
軸正方向上緊鄰該點的空間完全處於邊界之內,或者
Y
軸正方向上緊鄰該點的空間完全處於邊界之內。
contains
和 intersects
方法將 Shape
內部視為可以填充的封閉區域。這意味著為了確定某個 shape 是否包含矩形或與矩形相交,或者確定某個 shape 是否包含一個點,這些方法將隱式地認為未閉合的 shape 是閉合的。
PathIterator
,
AffineTransform
,
FlatteningPathIterator
,
GeneralPath
方法摘要 | |
---|---|
boolean |
contains(double x,
double y)
測試指定坐標是否在 Shape 的邊界內。 |
boolean |
contains(double x,
double y,
double w,
double h)
測試 Shape 內部是否完全包含指定矩形區域。 |
boolean |
contains(Point2D p)
測試指定的 Point2D 是否在 Shape 的邊界內。 |
boolean |
contains(Rectangle2D r)
測試 Shape 內部是否完全包含指定的 Rectangle2D 。 |
Rectangle |
getBounds()
返回一個完全包圍 Shape 的整型 Rectangle 。 |
Rectangle2D |
getBounds2D()
返回一個高精度的、比 getBounds 方法更準確的 Shape 邊界框。 |
PathIterator |
getPathIterator(AffineTransform at)
返回一個沿著 Shape 邊界迭代並提供對 Shape 輪廓幾何形狀的存取的迭代器物件。 |
PathIterator |
getPathIterator(AffineTransform at,
double flatness)
返回一個沿著 Shape 邊界迭代並提供對 Shape 輪廓幾何形狀的平面視圖存取的迭代器物件。 |
boolean |
intersects(double x,
double y,
double w,
double h)
測試 Shape 內部是否與指定矩形區域的內部相交。 |
boolean |
intersects(Rectangle2D r)
測試 Shape 內部是否與指定 Rectangle2D 內部相交。 |
方法詳細資訊 |
---|
Rectangle getBounds()
Shape
的整型 Rectangle
。注意,不保證返回的 Rectangle
是包圍 Shape
的最小邊界框,只保證 Shape
完全位於指示的 Rectangle
中。如果 Shape
超出了整數資料型別的有效範圍,則返回的 Rectangle
也可能不完全包圍 Shape
。getBounds2D
方法由於在表示形式上具有更大的靈活性,所以通常返回更緊密的邊界框。
Shape
的整型 Rectangle
。getBounds2D()
Rectangle2D getBounds2D()
getBounds
方法更準確的 Shape
邊界框。注意,不保證返回的 Rectangle2D
是包圍 Shape
的最小邊界框,只保證 Shape
完全位於指示的 Rectangle2D
中。此方法返回的邊界框通常比 getBounds
方法返回的更緊密,而且永遠不會因為溢位問題而出錯,因為返回值可以是一個使用雙精度值存儲尺寸的 Rectangle2D
實例。
Rectangle2D
實例,它是 Shape
的高精度邊界框。getBounds()
boolean contains(double x, double y)
Shape
的邊界內。
x
- 要測試的指定的 X 坐標y
- 要測試的指定的 Y 坐標
Shape
邊界內,則返回 true
;否則返回 false
。boolean contains(Point2D p)
Point2D
是否在 Shape
的邊界內。
p
- 要測試的指定的 Point2D
Point2D
在 Shape
邊界內,則返回 true
;否則返回 false
。boolean intersects(double x, double y, double w, double h)
Shape
內部是否與指定矩形區域的內部相交。如果任何一個點既包含在 Shape
內,又包含在指定矩形區域內,則認為矩形區域與 Shape
相交。
在下列情況下,Shape.intersects()
方法允許 Shape
實作謹慎地返回 true
:
Shape
相交的可能性很大,但是
Shape
,即使矩形區域沒有與該 Shape
相交,此方法也可能返回 true
。如果需要更精確的答案,由於 Area
類別比大多數 Shape
物件更為準確地計算幾何相交,因此可以使用該類別。
x
- 指定矩形區域左上角的 X 坐標y
- 指定矩形區域左上角的 Y 坐標w
- 指定矩形區域的寬度h
- 指定矩形區域的高度
Shape
的內部區域與矩形的內部區域相交,或者相交的可能性很大且執行計算的代價太高,則返回 true
;否則返回 false
。Area
boolean intersects(Rectangle2D r)
Shape
內部是否與指定 Rectangle2D
內部相交。在下列情況下,Shape.intersects()
方法允許 Shape
實作謹慎地返回 true
:
Rectangle2D
與 Shape
相交的可能性很大,但是
Shape
,即使 Rectangle2D
沒有與該 Shape
相交,此方法也可能返回 true
。如果需要更精確的答案,由於 Area
類別比大多數 Shape
物件更為準確地計算幾何相交,因此可以使用該類別。
r
- 指定的 Rectangle2D
Shape
內部與指定 Rectangle2D
內部相交,或者相交的可能性很大且執行計算的代價太高,則返回 true
;否則返回 false
。intersects(double, double, double, double)
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
物件更為準確地執行幾何計算,因此可以使用該類別。
x
- 指定矩形區域左上角的 X 坐標y
- 指定矩形區域左上角的 Y 坐標w
- 指定矩形區域的寬度h
- 指定矩形區域的高度
Shape
內部完全包含指定矩形區域,則返回 true
;否則,如果 Shape
套件含矩形區域、intersects
方法返回 true
且執行包含計算代價太高,則返回 false
。Area
,
intersects(double, double, double, double)
boolean contains(Rectangle2D r)
Shape
內部是否完全包含指定的 Rectangle2D
。在下列情況下,Shape.contains()
方法允許 Shape
實作謹慎地返回 false
:
intersect
方法返回 true
並且
Shape
是否完全包含 Rectangle2D
的代價太高。
Shape
,即使 Shape
套件含 Rectangle2D
,此方法也可能返回 false
。如果需要更精確的答案,由於 Area
類別比大多數 Shape
物件更為準確地執行幾何計算,因此可以使用該類別。
r
- 指定的 Rectangle2D
Shape
內部完全包含 Rectangle2D
,則返回 true
;否則,如果 Shape
套件含 Rectangle2D
、intersects
方法返回 true
且執行包含計算代價太高,則返回 false
。contains(double, double, double, double)
PathIterator getPathIterator(AffineTransform at)
Shape
邊界迭代並提供對 Shape
輪廓幾何形狀的存取的迭代器物件。如果指定一個可選 AffineTransform
,則相應地轉換迭代中返回的坐標。
每次調用此方法都會返回一個最新的、遍歷 Shape
物件幾何形狀的 PathIterator
物件,該物件獨立於其他所有同時使用的 PathIterator
物件。
建議但不保證實作 Shape
介面的物件將進行中的迭代與該迭代期間可能對原始物件幾何形狀所做的任何更改隔離開來。
at
- 一個可選的 AffineTransform
,用於在迭代中返回的坐標,如果需要未轉換的坐標,則返回 null
Shape
的幾何形狀的 PathIterator
物件。PathIterator getPathIterator(AffineTransform at, double flatness)
Shape
邊界迭代並提供對 Shape
輪廓幾何形狀的平面視圖存取的迭代器物件。
迭代器只返回 SEG_MOVETO、SEG_LINETO 和 SEG_CLOSE 點型別。
如果指定一個可選 AffineTransform
,則相應地轉換迭代中返回的坐標。
flatness
參數控制曲線段分段的數量,指定轉換的不平曲線上任一點能夠偏離返回的變平路徑段的最大距離。注意,變平路徑的精度限制可能稍微受到影響,使非常小的變平參數作為較大的值來處理。如果有這樣的限制,那麼該限制是由使用的特定實作定義的。
每次調用此方法都會返回一個最新的、遍歷 Shape
物件幾何形狀的 PathIterator
物件,該物件獨立於其他所有同時使用的 PathIterator
物件。
建議但不保證實作 Shape
介面的物件將進行中的迭代與該迭代期間可能對原始物件幾何形狀所做的任何更改隔離開來。
at
- 一個可選 AffineTransform
,用於在迭代中返回的坐標,如果需要未轉換的坐標,則返回 null
flatness
- 用來近似曲線段的直線段偏離原始曲線上任一點的最大距離
Shape
幾何形狀的平面視圖的 PathIterator
。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。