JavaTM 2 Platform
Standard Ed. 6

java.awt.geom
類別 Rectangle2D

java.lang.Object
  繼承者 java.awt.geom.RectangularShape
      繼承者 java.awt.geom.Rectangle2D
所有已實作的介面:
Shape, Cloneable
直接已知子類別:
Rectangle, Rectangle2D.Double, Rectangle2D.Float

public abstract class Rectangle2D
extends RectangularShape

Rectangle2D 類別描述通過位置 (x,y) 和尺寸 (w x h) 定義的矩形。

此類別是所有存儲 2D 矩形的物件的惟一抽象父級類別。坐標的實際存儲表示形式由子類別決定。

從以下版本開始:
1.2

巢狀類別摘要
static class Rectangle2D.Double
          Double 類別定義一個在 double 坐標中指定的矩形。
static class Rectangle2D.Float
          Float 類別定義一個在 float 坐標中指定的矩形。
 
欄位摘要
static int OUT_BOTTOM
          指示點位於此 Rectangle2D 下方的位遮罩碼。
static int OUT_LEFT
          指示點位於此 Rectangle2D 左邊的位遮罩碼。
static int OUT_RIGHT
          指示點位於此 Rectangle2D 右邊的位遮罩碼。
static int OUT_TOP
          指示點位於此 Rectangle2D 上方的位遮罩碼。
 
建構子摘要
protected Rectangle2D()
          這是一個不可直接實例化的抽象類別。
 
方法摘要
 void add(double newx, double newy)
          將由 double 精度參數 newxnewy 指定的點添加到此 Rectangle2D 中。
 void add(Point2D pt)
          將 Point2D 物件 pt 添加到此 Rectangle2D 中。
 void add(Rectangle2D r)
          將 Rectangle2D 物件添加到此 Rectangle2D 中。
 boolean contains(double x, double y)
          測試指定坐標是否在 Shape 的邊界內。
 boolean contains(double x, double y, double w, double h)
          測試 Shape 內部是否完全包含指定矩形區域。
abstract  Rectangle2D createIntersection(Rectangle2D r)
          返回一個新的 Rectangle2D 物件,它表示此 Rectangle2D 與指定 Rectangle2D 的交集。
abstract  Rectangle2D createUnion(Rectangle2D r)
          返回一個新的 Rectangle2D 物件,它表示此 Rectangle2D 與指定 Rectangle2D 的並集。
 boolean equals(Object obj)
          確定指定的 Object 是否與此 Rectangle2D 相等。
 Rectangle2D getBounds2D()
          返回一個高精度的、比 getBounds 方法更準確的 Shape 邊界框。
 PathIterator getPathIterator(AffineTransform at)
          返回定義此 Rectangle2D 邊界的迭代物件。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          返回定義變平的 Rectangle2D 邊界的迭代物件。
 int hashCode()
          返回此 Rectangle2D 的雜湊碼。
static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
          將指定的一對源 Rectangle2D 物件相交,並將結果置於指定的目標 Rectangle2D 物件中。
 boolean intersects(double x, double y, double w, double h)
          測試 Shape 內部是否與指定矩形區域的內部相交。
 boolean intersectsLine(double x1, double y1, double x2, double y2)
          測試指定線段是否與此 Rectangle2D 的內部相交。
 boolean intersectsLine(Line2D l)
          測試指定的線段是否與此 Rectangle2D 的內部相交。
abstract  int outcode(double x, double y)
          確定指定坐標相對於此 Rectangle2D 的位置。
 int outcode(Point2D p)
          確定指定 Point2D 相對於此 Rectangle2D 的位置。
 void setFrame(double x, double y, double w, double h)
          將此 Rectangle2D 外部邊界的位置和大小設置為指定矩形值。
abstract  void setRect(double x, double y, double w, double h)
          將此 Rectangle2D 的位置和大小設置為指定的 double 值。
 void setRect(Rectangle2D r)
          將此 Rectangle2D 設置為與指定的 Rectangle2D 相同。
static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
          將一對源 Rectangle2D 物件合併,並將結果置於指定的目標 Rectangle2D 物件中。
 
從類別 java.awt.geom.RectangularShape 繼承的方法
clone, contains, contains, getBounds, getCenterX, getCenterY, getFrame, getHeight, getMaxX, getMaxY, getMinX, getMinY, getWidth, getX, getY, intersects, isEmpty, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

OUT_LEFT

public static final int OUT_LEFT
指示點位於此 Rectangle2D 左邊的位遮罩碼。

從以下版本開始:
1.2
另請參見:
常數欄位值

OUT_TOP

public static final int OUT_TOP
指示點位於此 Rectangle2D 上方的位遮罩碼。

從以下版本開始:
1.2
另請參見:
常數欄位值

OUT_RIGHT

public static final int OUT_RIGHT
指示點位於此 Rectangle2D 右邊的位遮罩碼。

從以下版本開始:
1.2
另請參見:
常數欄位值

OUT_BOTTOM

public static final int OUT_BOTTOM
指示點位於此 Rectangle2D 下方的位遮罩碼。

從以下版本開始:
1.2
另請參見:
常數欄位值
建構子詳細資訊

Rectangle2D

protected Rectangle2D()
這是一個不可直接實例化的抽象類別。特定於型別的實作子類別可用於實例化,並提供用於存儲滿足以下各種存取方法所需資訊的多種格式。

從以下版本開始:
1.2
另請參見:
Rectangle2D.Float, Rectangle2D.Double, Rectangle
方法詳細資訊

setRect

public abstract void setRect(double x,
                             double y,
                             double w,
                             double h)
將此 Rectangle2D 的位置和大小設置為指定的 double 值。

參數:
x - 此 Rectangle2D 左上角的 X 坐標
y - 此 Rectangle2D 左上角的 Y 坐標
w - 此 Rectangle2D 的寬度
h - 此 Rectangle2D 的高度
從以下版本開始:
1.2

setRect

public void setRect(Rectangle2D r)
將此 Rectangle2D 設置為與指定的 Rectangle2D 相同。

參數:
r - 指定的 Rectangle2D
從以下版本開始:
1.2

intersectsLine

public boolean intersectsLine(double x1,
                              double y1,
                              double x2,
                              double y2)
測試指定線段是否與此 Rectangle2D 的內部相交。

參數:
x1 - 指定線段起始點的 X 坐標
y1 - 指定線段起始點的 Y 坐標
x2 - 指定線段結束點的 X 坐標
y2 - 指定線段結束點的 Y 坐標
返回:
如果指定線段與此 Rectangle2D 的內部相交,則返回 true;否則返回 false
從以下版本開始:
1.2

intersectsLine

public boolean intersectsLine(Line2D l)
測試指定的線段是否與此 Rectangle2D 的內部相交。

參數:
l - 要測試是否與此 Rectangle2D 內部相交的指定 Line2D
返回:
如果指定 Line2D 與此 Rectangle2D 的內部相交,則返回 true;否則返回 false
從以下版本開始:
1.2

outcode

public abstract int outcode(double x,
                            double y)
確定指定坐標相對於此 Rectangle2D 的位置。此方法計算適當遮罩碼值的二進制或 (OR),這些遮罩碼值針對此 Rectangle2D 的每個邊指示指定坐標是否在此 Rectangle2D 其餘邊緣的同一側。

參數:
x - 指定的 X 坐標
y - 指定的 Y 坐標
返回:
所有適當外碼的邏輯或。
從以下版本開始:
1.2
另請參見:
OUT_LEFT, OUT_TOP, OUT_RIGHT, OUT_BOTTOM

outcode

public int outcode(Point2D p)
確定指定 Point2D 相對於此 Rectangle2D 的位置。此方法計算適當遮罩碼值的二進制或,這些值針對此 Rectangle2D 的每個邊指示指定 Point2D 是否在此 Rectangle2D 其餘邊緣的同一側。

參數:
p - 指定的 Point2D
返回:
所有適當外碼的邏輯或。
從以下版本開始:
1.2
另請參見:
OUT_LEFT, OUT_TOP, OUT_RIGHT, OUT_BOTTOM

setFrame

public void setFrame(double x,
                     double y,
                     double w,
                     double h)
將此 Rectangle2D 外部邊界的位置和大小設置為指定矩形值。

指定者:
類別 RectangularShape 中的 setFrame
參數:
x - 此 Rectangle2D 左上角的 X 坐標
y - 此 Rectangle2D 左上角的 Y 坐標
w - 此 Rectangle2D 的寬度
h - 此 Rectangle2D 的高度
從以下版本開始:
1.2
另請參見:
RectangularShape.getFrame()

getBounds2D

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

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

contains

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

參數:
x - 要測試的指定的 X 坐標
y - 要測試的指定的 Y 坐標
返回:
如果指定坐標在 Shape 邊界內,則返回 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 物件更為準確地計算幾何相交,因此可以使用該類別。

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

contains

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

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

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

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

createIntersection

public abstract Rectangle2D createIntersection(Rectangle2D r)
返回一個新的 Rectangle2D 物件,它表示此 Rectangle2D 與指定 Rectangle2D 的交集。

參數:
r - 與此 Rectangle2D 相交的 Rectangle2D
返回:
同時被指定 Rectangle2D 和此 Rectangle2D 套件含的最大 Rectangle2D
從以下版本開始:
1.2

intersect

public static void intersect(Rectangle2D src1,
                             Rectangle2D src2,
                             Rectangle2D dest)
將指定的一對源 Rectangle2D 物件相交,並將結果置於指定的目標 Rectangle2D 物件中。為了避免創建第三個 Rectangle2D 物件,將其中一個源矩形作為目標矩形也是可以的,但這樣此方法將改寫源矩形的初始點。

參數:
src1 - 要彼此相交的一對 Rectangle2D 物件中的第一個物件
src2 - 要彼此相交的一對 Rectangle2D 物件中的第二個物件
dest - 保存 src1src2 相交結果的 Rectangle2D
從以下版本開始:
1.2

createUnion

public abstract Rectangle2D createUnion(Rectangle2D r)
返回一個新的 Rectangle2D 物件,它表示此 Rectangle2D 與指定 Rectangle2D 的並集。

參數:
r - 與此 Rectangle2D 合併的 Rectangle2D
返回:
包含指定 Rectangle2D 和此 Rectangle2D 的最小 Rectangle2D
從以下版本開始:
1.2

union

public static void union(Rectangle2D src1,
                         Rectangle2D src2,
                         Rectangle2D dest)
將一對源 Rectangle2D 物件合併,並將結果置於指定的目標 Rectangle2D 物件中。為了避免創建第三個 Rectangle2D 物件,將其中一個源矩形作為目標矩形也是可以的,但這樣此方法將改寫源矩形的初始點。

參數:
src1 - 要彼此合併的一對 Rectangle2D 物件中的第一個物件
src2 - 要彼此合併的 Rectangle2D 物件中的第二個物件
dest - 保存 src1src2 合併結果的 Rectangle2D
從以下版本開始:
1.2

add

public void add(double newx,
                double newy)
將由 double 精度參數 newxnewy 指定的點添加到此 Rectangle2D 中。所得到的 Rectangle2D 是同時包含原始 Rectangle2D 和指定點的最小 Rectangle2D

在添加一個點後,以添加的點作為參數調用 contains 方法不一定返回 true。對於矩形的右邊和底邊上的點,contains 方法不返回 true。所以,如果添加的點落在放大的矩形的左邊和底邊上,則 contains 將對該點返回 false

參數:
newx - 新點的 X 坐標
newy - 新點的 Y 坐標
從以下版本開始:
1.2

add

public void add(Point2D pt)
Point2D 物件 pt 添加到此 Rectangle2D 中。所得到的 Rectangle2D 是同時包含原始 Rectangle2D 和指定的 Point2D 的最小的 Rectangle2D

在添加一個點後,以添加的點為參數調用 contains 方法不一定返回 true。對於矩形的右邊和底部邊界線上的點,contains 方法不返回 true。所以,如果添加的點落在放大的矩形的左邊和底部邊界線上,則 contains 將針對該點返回 false

參數:
pt - 添加到此 Rectangle2D 中的新 Point2D
從以下版本開始:
1.2

add

public void add(Rectangle2D r)
Rectangle2D 物件添加到此 Rectangle2D 中。得到的 Rectangle2D 是兩個 Rectangle2D 物件的並集。

參數:
r - 要添加到此 Rectangle2D 中的 Rectangle2D
從以下版本開始:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
返回定義此 Rectangle2D 邊界的迭代物件。此類別的迭代器是多執行緒安全的,這意味著此 Rectangle2D 類別保證對此 Rectangle2D 物件幾何形狀所作的修改不會影響該幾何形狀中正在進行的迭代。

參數:
at - 一個可選的 AffineTransform,用於在迭代中返回的坐標;如果需要未轉換的坐標,則為 null
返回:
返回此 Rectangle2D 輪廓幾何形狀的 PathIterator 物件,一次一段。
從以下版本開始:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)
返回定義變平的 Rectangle2D 邊界的迭代物件。因為矩形已經是平的,所以 flatness 參數將被忽略。此類別的迭代器是多執行緒安全的,這意味著此 Rectangle2D 類別保證對此 Rectangle2D 物件幾何形狀所作的修改不會影響該幾何形狀中正在進行的迭代。

指定者:
介面 Shape 中的 getPathIterator
覆寫:
類別 RectangularShape 中的 getPathIterator
參數:
at - 一個可選 AffineTransform,用於在迭代中返回的坐標;如果需要未轉換的坐標,則為 null
flatness - 用來近似曲線段的直線段偏離原始曲線上任一點的最大距離。因為矩形已經是平的,所以 flatness 參數將被忽略。
返回:
PathIterator 物件,該物件返回此 Rectangle2D 的輪廓的幾何形狀,一次一段。
從以下版本開始:
1.2

hashCode

public int hashCode()
返回此 Rectangle2D 的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
Rectangle2D 物件的雜湊碼。
從以下版本開始:
1.2
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
確定指定的 Object 是否與此 Rectangle2D 相等。如果指定的 ObjectRectangle2D 的實例並且位置和大小與此 Rectangle2D 相同,則其與此 Rectangle2D 相等。

覆寫:
類別 Object 中的 equals
參數:
obj - 要與此 Rectangle2D 進行比較的 Object
返回:
如果 objRectangle2D 的實例並且與 Rectangle2D 具有相同值,則返回 true;否則返回 false
從以下版本開始:
1.2
另請參見:
Object.hashCode(), Hashtable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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