JavaTM 2 Platform
Standard Ed. 6

java.awt.geom
類別 Arc2D

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

public abstract class Arc2D
extends RectangularShape

Arc2D 是所有存儲 2D 弧度的物件的抽象父級類別,其中 2D 弧度由窗體矩形、起始角度、角跨越(弧的長度)和閉合型別(OPENCHORDPIE)定義。

弧度是其父 RectangularShape 窗體矩形內切完整橢圓的一部分。 角度是相對於非正方形的窗體矩形指定的,從而 45 度角總是落在橢圓中心到窗體矩形右上角的連線上。因此,如果窗體矩形沿一條軸的長度遠長於沿另一條軸的長度,則弧段起始點和結束點間的角度將沿窗體長軸發生較大偏斜。

坐標的實際存儲表示形式由子類別決定。

從以下版本開始:
1.2

巢狀類別摘要
static class Arc2D.Double
          此類別定義以 double 精度指定的弧。
static class Arc2D.Float
          此類別定義以 float 精度指定的弧。
 
欄位摘要
static int CHORD
          閉合型別,用於通過從弧段的起始點到弧段的結束點畫一條直線來閉合的弧。
static int OPEN
          閉合型別,用於不具有用來連接弧段兩個端點的路徑段的開弧。
static int PIE
          閉合型別,用於通過從弧段的起始點到完整橢圓的中心,再從圓心到弧段的結束點畫直線來閉合的弧。
 
建構子摘要
protected Arc2D(int type)
          這是一個不能直接實例化的抽象類別。
 
方法摘要
 boolean contains(double x, double y)
          確定指定的點是否位於弧的邊界內。
 boolean contains(double x, double y, double w, double h)
          確定弧的內部是否完全包含指定的矩形。
 boolean contains(Rectangle2D r)
          確定弧的內部是否完全包含指定的矩形。
 boolean containsAngle(double angle)
          確定指定的角度是否位於弧的角跨越內。
 boolean equals(Object obj)
          確定指定的 Object 是否與此 Arc2D 相等。
abstract  double getAngleExtent()
          返回弧的角跨越。
abstract  double getAngleStart()
          返回弧的起始角度。
 int getArcType()
          返回弧的弧閉合型別:OPENCHORDPIE
 Rectangle2D getBounds2D()
          返回弧的高精度窗體矩形。
 Point2D getEndPoint()
          返回弧的結束點。
 PathIterator getPathIterator(AffineTransform at)
          返回定義弧邊界的迭代物件。
 Point2D getStartPoint()
          返回弧的起始點。
 int hashCode()
          返回此 Arc2D 的雜湊碼。
 boolean intersects(double x, double y, double w, double h)
          確定弧的內部與指定矩形的內部是否相交。
protected abstract  Rectangle2D makeBounds(double x, double y, double w, double h)
          建構一個適當精度的 Rectangle2D,以保存為此弧的窗體矩形計算出的參數。
abstract  void setAngleExtent(double angExt)
          將此弧的角跨越設置為指定的 double 值。
 void setAngles(double x1, double y1, double x2, double y2)
          使用兩組坐標設置此弧的起始角度和角跨越。
 void setAngles(Point2D p1, Point2D p2)
          使用兩個點設置此弧的起始角度和角跨越。
abstract  void setAngleStart(double angSt)
          將此弧的起始角度設置為指定的 double 值。
 void setAngleStart(Point2D p)
          將此弧的起始角度設置為由指定點定義、相對於此弧中心的角度。
 void setArc(Arc2D a)
          將此弧設置為與指定弧相同。
abstract  void setArc(double x, double y, double w, double h, double angSt, double angExt, int closure)
          將此弧的位置、大小、角跨越和閉合型別設置為指定的 double 值。
 void setArc(Point2D loc, Dimension2D size, double angSt, double angExt, int closure)
          將此弧的位置、大小、角跨越和閉合型別設置為指定值。
 void setArc(Rectangle2D rect, double angSt, double angExt, int closure)
          將此弧的位置、大小、角跨越和閉合型別設置為指定值。
 void setArcByCenter(double x, double y, double radius, double angSt, double angExt, int closure)
          將此弧的位置、邊界、角跨越和閉合型別設置為指定值。
 void setArcByTangent(Point2D p1, Point2D p2, Point2D p3, double radius)
          將此弧的位置、邊界和角跨越設置為指定值。
 void setArcType(int type)
          將此弧的閉合型別設置為指定值:OPENCHORDPIE
 void setFrame(double x, double y, double w, double h)
          將此 Shape 窗體矩形的位置和大小設置為指定的矩形值。
 
從類別 java.awt.geom.RectangularShape 繼承的方法
clone, contains, getBounds, getCenterX, getCenterY, getFrame, getHeight, getMaxX, getMaxY, getMinX, getMinY, getPathIterator, getWidth, getX, getY, intersects, isEmpty, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

OPEN

public static final int OPEN
閉合型別,用於不具有用來連接弧段兩個端點的路徑段的開弧。

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

CHORD

public static final int CHORD
閉合型別,用於通過從弧段的起始點到弧段的結束點畫一條直線來閉合的弧。

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

PIE

public static final int PIE
閉合型別,用於通過從弧段的起始點到完整橢圓的中心,再從圓心到弧段的結束點畫直線來閉合的弧。

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

Arc2D

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

參數:
type - 此弧的閉合型別:OPENCHORDPIE
從以下版本開始:
1.2
另請參見:
Arc2D.Float, Arc2D.Double
方法詳細資訊

getAngleStart

public abstract double getAngleStart()
返回弧的起始角度。

返回:
一個 double 值,表示弧的起始角度(以度數表示)。
從以下版本開始:
1.2
另請參見:
setAngleStart(double)

getAngleExtent

public abstract double getAngleExtent()
返回弧的角跨越。

返回:
一個 double 值,表示弧的角跨越(以度數表示)。
從以下版本開始:
1.2
另請參見:
setAngleExtent(double)

getArcType

public int getArcType()
返回弧的弧閉合型別:OPENCHORDPIE

返回:
在此類別中定義的整數常數閉合型別之一。
從以下版本開始:
1.2
另請參見:
setArcType(int)

getStartPoint

public Point2D getStartPoint()
返回弧的起始點。此點是起始角度定義的中心發出的射線與弧橢圓邊界的交點。

返回:
一個 Point2D 物件,表示弧起始點的 x、y 坐標。
從以下版本開始:
1.2

getEndPoint

public Point2D getEndPoint()
返回弧的結束點。此點是起始角度加上弧的角跨越所定義的中心發出的射線與弧橢圓邊界的交點。

返回:
一個 Point2D 物件,表示弧結束點的 x、y 坐標。
從以下版本開始:
1.2

setArc

public abstract void setArc(double x,
                            double y,
                            double w,
                            double h,
                            double angSt,
                            double angExt,
                            int closure)
將此弧的位置、大小、角跨越和閉合型別設置為指定的 double 值。

參數:
x - 弧的左上角的 X 坐標。
y - 弧的左上角的 Y 坐標。
w - 完整橢圓的總寬度,此弧是該橢圓的一部分。
h - 完整橢圓的總高度,此弧是該橢圓的一部分。
angSt - 弧的起始角度(以度數表示)。
angExt - 弧的角跨越(以度數表示)。
closure - 弧的閉合型別:OPENCHORDPIE
從以下版本開始:
1.2

setArc

public void setArc(Point2D loc,
                   Dimension2D size,
                   double angSt,
                   double angExt,
                   int closure)
將此弧的位置、大小、角跨越和閉合型別設置為指定值。

參數:
loc - 表示弧的左上角坐標的 Point2D
size - 表示完整橢圓寬度和高度的 Dimension2D,此弧是該橢圓的一部分。
angSt - 弧的起始角度(以度數表示)。
angExt - 弧的角跨越(以度數表示)。
closure - 弧的閉合型別:OPENCHORDPIE
從以下版本開始:
1.2

setArc

public void setArc(Rectangle2D rect,
                   double angSt,
                   double angExt,
                   int closure)
將此弧的位置、大小、角跨越和閉合型別設置為指定值。

參數:
rect - 定義完整橢圓外部邊界的窗體矩形,此弧是該橢圓的一部分。
angSt - 弧的起始角度(以度數表示)。
angExt - 弧的角跨越(以度數表示)。
closure - 弧的閉合型別:OPENCHORDPIE
從以下版本開始:
1.2

setArc

public void setArc(Arc2D a)
將此弧設置為與指定弧相同。

參數:
a - 用於設置弧值的 Arc2D
從以下版本開始:
1.2

setArcByCenter

public void setArcByCenter(double x,
                           double y,
                           double radius,
                           double angSt,
                           double angExt,
                           int closure)
將此弧的位置、邊界、角跨越和閉合型別設置為指定值。弧是由中心點和半徑(而不是完整橢圓的窗體矩形)定義的。

參數:
x - 弧中心的 X 坐標。
y - 弧中心的 Y 坐標。
radius - 弧的半徑。
angSt - 弧的起始角度(以度數表示)。
angExt - 弧的角跨越(以度數表示)。
closure - 弧的閉合型別:OPENCHORDPIE
從以下版本開始:
1.2

setArcByTangent

public void setArcByTangent(Point2D p1,
                            Point2D p2,
                            Point2D p3,
                            double radius)
將此弧的位置、邊界和角跨越設置為指定值。弧的起始角度是點 (p1, p2) 指定的線的正切,結束角度是點 (p2, p3) 指定的線的正切,弧還具有指定的半徑。

參數:
p1 - 定義弧的第一個點。弧的起始角度是點 (p1, p2) 指定的線的正切。
p2 - 定義弧的第二個點。弧的起始角度是點 (p1, p2) 指定的線的正切。弧的結束角度是點 (p2, p3) 指定的線的正切。
p3 - 定義弧的第三個點。弧的結束角度是點 (p2, p3) 指定的線的正切。
radius - 弧的半徑。
從以下版本開始:
1.2

setAngleStart

public abstract void setAngleStart(double angSt)
將此弧的起始角度設置為指定的 double 值。

參數:
angSt - 弧的起始角度(以度數表示)。
從以下版本開始:
1.2
另請參見:
getAngleStart()

setAngleExtent

public abstract void setAngleExtent(double angExt)
將此弧的角跨越設置為指定的 double 值。

參數:
angExt - 弧的角跨越(以度數表示)。
從以下版本開始:
1.2
另請參見:
getAngleExtent()

setAngleStart

public void setAngleStart(Point2D p)
將此弧的起始角度設置為由指定點定義、相對於此弧中心的角度。弧的角跨越將保持不變。

參數:
p - 定義起始角度的 Point2D
從以下版本開始:
1.2
另請參見:
getAngleStart()

setAngles

public void setAngles(double x1,
                      double y1,
                      double x2,
                      double y2)
使用兩組坐標設置此弧的起始角度和角跨越。第一組坐標用於確定相對於弧中心起始點的角度。第二組坐標用於確定相對於弧中心結束點的角度。弧始終是非空(null)的,按逆時針方向以弧形從第一點延伸到第二點。

參數:
x1 - 弧起始點的 X 坐標。
y1 - 弧起始點的 Y 坐標。
x2 - 弧結束點的 X 坐標。
y2 - 弧結束點的 Y 坐標。
從以下版本開始:
1.2

setAngles

public void setAngles(Point2D p1,
                      Point2D p2)
使用兩個點設置此弧的起始角度和角跨越。第一點用於確定相對於弧中心起始點的角度。第二點用於確定相對於弧中心結束點的角度。弧始終是非空(null)的,按逆時針方向以弧形從第一點延伸到第二點。

參數:
p1 - 定義弧起始點的 Point2D
p2 - 定義弧結束點的 Point2D
從以下版本開始:
1.2

setArcType

public void setArcType(int type)
將此弧的閉合型別設置為指定值:OPENCHORDPIE

參數:
type - 表示此弧閉合型別的整數常數:OPENCHORDPIE
拋出:
IllegalArgumentException - 如果 type 不是 0、1 或 2。
從以下版本開始:
1.2
另請參見:
getArcType()

setFrame

public void setFrame(double x,
                     double y,
                     double w,
                     double h)
將此 Shape 窗體矩形的位置和大小設置為指定的矩形值。 注意,該弧部分內切於RectangularShape 的窗體矩形。

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

getBounds2D

public Rectangle2D getBounds2D()
返回弧的高精度窗體矩形。該窗體矩形僅包含此 Arc2D 的一部分,即起始角度和結束角度之間的部分;如果此 Arc2D 的閉合型別為 PIE,則還包含扇形邊。

此方法不同於 getBoundsgetBounds 方法僅返回此 Arc2D 封閉橢圓的邊界,而不考慮此 Arc2D 的起始角度和結束角度。

返回:
表示弧的窗體矩形的 Rectangle2D
從以下版本開始:
1.2
另請參見:
Shape.getBounds()

makeBounds

protected abstract Rectangle2D makeBounds(double x,
                                          double y,
                                          double w,
                                          double h)
建構一個適當精度的 Rectangle2D,以保存為此弧的窗體矩形計算出的參數。

參數:
x - 窗體矩形左上角的 X 坐標。
y - 窗體矩形左上角的 Y 坐標。
w - 窗體矩形的寬度。
h - 窗體矩形的高度。
返回:
作為此弧窗體矩形的 Rectangle2D
從以下版本開始:
1.2

containsAngle

public boolean containsAngle(double angle)
確定指定的角度是否位於弧的角跨越內。

參數:
angle - 要測試的角度。
返回:
如果弧包含角度,則返回 true;如果弧不包含角度,則返回 false
從以下版本開始:
1.2

contains

public boolean contains(double x,
                        double y)
確定指定的點是否位於弧的邊界內。

參數:
x - 要測試的點的 X 坐標。
y - 要測試的點的 Y 坐標。
返回:
如果點位於弧的邊界內,則返回 true;如果點位於弧的邊界外,則返回 false
從以下版本開始:
1.2

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)
確定弧的內部與指定矩形的內部是否相交。

參數:
x - 矩形左上角的 X 坐標。
y - 矩形左上角的 Y 坐標。
w - 矩形的寬度。
h - 矩形的高度。
返回:
如果弧與矩形相交,則返回 true;如果弧與矩形不相交,則返回 false
從以下版本開始:
1.2
另請參見:
Area

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)
確定弧的內部是否完全包含指定的矩形。

參數:
x - 矩形左上角的 X 坐標。
y - 矩形左上角的 Y 坐標。
w - 矩形的寬度。
h - 矩形的高度。
返回:
如果弧包含矩形,則返回 true;如果弧不包含矩形,則返回 false
從以下版本開始:
1.2
另請參見:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)
確定弧的內部是否完全包含指定的矩形。

指定者:
介面 Shape 中的 contains
覆寫:
類別 RectangularShape 中的 contains
參數:
r - 要測試的 Rectangle2D
返回:
如果弧包含矩形,則返回 true;如果弧不包含矩形,則返回 false
從以下版本開始:
1.2
另請參見:
Shape.contains(double, double, double, double)

getPathIterator

public PathIterator getPathIterator(AffineTransform at)
返回定義弧邊界的迭代物件。此迭代器是多執行緒安全的。Arc2D 保證對弧幾何形狀的修改不影響該幾何形狀任何進行中的迭代。

參數:
at - 可選的 AffineTransform,應用於迭代中返回的坐標;如果需要未轉換的坐標,則為 null。
返回:
定義弧邊界的 PathIterator
從以下版本開始:
1.2

hashCode

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

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

equals

public boolean equals(Object obj)
確定指定的 Object 是否與此 Arc2D 相等。如果該物件是一個 Arc2D 實例,並且其位置、大小、弧度跨越和型別與此 Arc2D 相同,則指定的 Object 與此 Arc2D 相等。

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

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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