JavaTM 2 Platform
Standard Ed. 6

java.awt.geom
類別 QuadCurve2D

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

public abstract class QuadCurve2D
extends Object
implements Shape, Cloneable

QuadCurve2D 類別定義 (x,y) 坐標空間內的二次參數曲線段。

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

從以下版本開始:
1.2

巢狀類別摘要
static class QuadCurve2D.Double
          使用 double 坐標指定的二次參數曲線段。
static class QuadCurve2D.Float
          使用 float 坐標指定的二次參數曲線段。
 
建構子摘要
protected QuadCurve2D()
          這是一個不可直接實例化的抽象類別。
 
方法摘要
 Object clone()
          創建一個與此物件具有相同類別和相同內容的新物件。
 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
abstract  Point2D getCtrlPt()
          返回控制點。
abstract  double getCtrlX()
          以 double 精度返回控制點的 X 坐標。
abstract  double getCtrlY()
          以 double 精度返回控制點的 Y 坐標。
 double getFlatness()
          返回此 QuadCurve2D 的平面度(或者說從控制點到連接端點的線的最大距離)。
static double getFlatness(double[] coords, int offset)
          返回由控制點(存儲在指示陣列中的指示索引處)指定的二次曲線平面度(或者說從控制點到連接端點的線的最大距離)。
static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
          返回由指示控制點指定的二次曲線平面度(或者說從控制點到連接端點的線的最大距離)。
 double getFlatnessSq()
          返回此 QuadCurve2D 的平面度(或者說從控制點到連接端點的線的最大距離)的平方。
static double getFlatnessSq(double[] coords, int offset)
          返回由控制點(存儲在指示陣列中的指示索引處)指定的二次曲線平面度(或者說從控制點到連接端點的線的最大距離)的平方。
static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
          返回由指示控制點指定的二次曲線平面度(或者說從控制點到連接端點的線的最大距離)的平方。
abstract  Point2D getP1()
          返回起始點。
abstract  Point2D getP2()
          返回結束點。
 PathIterator getPathIterator(AffineTransform at)
          返回定義此 QuadCurve2D 的形狀邊界的迭代物件。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          返回定義此 QuadCurve2D 的變平形狀邊界的迭代物件。
abstract  double getX1()
          以 double 精度返回起始點的 X 坐標。
abstract  double getX2()
          以 double 精度返回結束點的 X 坐標。
abstract  double getY1()
          以 double 精度返回起始點的 Y 坐標。
abstract  double getY2()
          以 double 精度返回結束點的 Y 坐標。
 boolean intersects(double x, double y, double w, double h)
          測試 Shape 內部是否與指定矩形區域的內部相交。
 boolean intersects(Rectangle2D r)
          測試 Shape 內部是否與指定 Rectangle2D 內部相交。
 void setCurve(double[] coords, int offset)
          將此 QuadCurve2D 端點和控制點的位置設置為指定陣列中指定偏移量處的 double 坐標。
abstract  void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
          將此曲線端點和控制點的位置設置為指定的 double 坐標。
 void setCurve(Point2D[] pts, int offset)
          將此 QuadCurve2D 端點和控制點的位置設置為指定陣列中指定偏移量處 Point2D 物件的坐標。
 void setCurve(Point2D p1, Point2D cp, Point2D p2)
          將此 QuadCurve2D 端點和控制點的位置設置為指定的 Point2D 坐標。
 void setCurve(QuadCurve2D c)
          將此 QuadCurve2D 端點和控制點的位置設置為與指定的 QuadCurve2D 相同。
static int solveQuadratic(double[] eqn)
          解係數位於 eqn 陣列中的二次曲線,並將非複數的根放回該陣列,同時返回根數。
static int solveQuadratic(double[] eqn, double[] res)
          解係數位於 eqn 陣列中的二次曲線,並將非複數的根放入 res 陣列,同時返回根數。
static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
          細分由存儲在 src 陣列 srcoff 到 (srcoff + 5) 索引處的坐標指定的二次曲線,並將得到的兩個細分曲線存儲到所得陣列的相應索引中。
 void subdivide(QuadCurve2D left, QuadCurve2D right)
          細分此 QuadCurve2D 並將得到的兩個細分曲線存儲到 leftright 曲線參數中。
static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)
          細分由 src 參數指定的二次曲線並將得到的兩個細分曲線存儲到 leftright 曲線參數中。
 
從類別 java.lang.Object 繼承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
從介面 java.awt.Shape 繼承的方法
getBounds2D
 

建構子詳細資訊

QuadCurve2D

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

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

getX1

public abstract double getX1()
double 精度返回起始點的 X 坐標。

返回:
起始點的 X 坐標。
從以下版本開始:
1.2

getY1

public abstract double getY1()
double 精度返回起始點的 Y 坐標。

返回:
起始點的 Y 坐標。
從以下版本開始:
1.2

getP1

public abstract Point2D getP1()
返回起始點。

返回:
作為此 QuadCurve2D 起始點的 Point2D
從以下版本開始:
1.2

getCtrlX

public abstract double getCtrlX()
double 精度返回控制點的 X 坐標。

返回:
控制點的 X 坐標。
從以下版本開始:
1.2

getCtrlY

public abstract double getCtrlY()
double 精度返回控制點的 Y 坐標。

返回:
控制點的 Y 坐標。
從以下版本開始:
1.2

getCtrlPt

public abstract Point2D getCtrlPt()
返回控制點。

返回:
作為此 Point2D 控制點的 Point2D
從以下版本開始:
1.2

getX2

public abstract double getX2()
double 精度返回結束點的 X 坐標。

返回:
結束點的 X 坐標。
從以下版本開始:
1.2

getY2

public abstract double getY2()
double 精度返回結束點的 Y 坐標。

返回:
結束點的 Y 坐標。
從以下版本開始:
1.2

getP2

public abstract Point2D getP2()
返回結束點。

返回:
作為 Point2D 結束點的 Point 物件。
從以下版本開始:
1.2

setCurve

public abstract void setCurve(double x1,
                              double y1,
                              double ctrlx,
                              double ctrly,
                              double x2,
                              double y2)
將此曲線端點和控制點的位置設置為指定的 double 坐標。

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

setCurve

public void setCurve(double[] coords,
                     int offset)
將此 QuadCurve2D 端點和控制點的位置設置為指定陣列中指定偏移量處的 double 坐標。

參數:
coords - 套件含坐標值的陣列
offset - 陣列中的索引,從此處開始獲取坐標值並將其賦給此 QuadCurve2D
從以下版本開始:
1.2

setCurve

public void setCurve(Point2D p1,
                     Point2D cp,
                     Point2D p2)
將此 QuadCurve2D 端點和控制點的位置設置為指定的 Point2D 坐標。

參數:
p1 - 起始點
cp - 控制點
p2 - 結束點
從以下版本開始:
1.2

setCurve

public void setCurve(Point2D[] pts,
                     int offset)
將此 QuadCurve2D 端點和控制點的位置設置為指定陣列中指定偏移量處 Point2D 物件的坐標。

參數:
pts - 套件含定義坐標值的 Point2D 的陣列
offset - pts 中的索引,從此處開始獲取坐標值並將其賦給此 QuadCurve2D
從以下版本開始:
1.2

setCurve

public void setCurve(QuadCurve2D c)
將此 QuadCurve2D 端點和控制點的位置設置為與指定的 QuadCurve2D 相同。

參數:
c - 指定的 QuadCurve2D
從以下版本開始:
1.2

getFlatnessSq

public static double getFlatnessSq(double x1,
                                   double y1,
                                   double ctrlx,
                                   double ctrly,
                                   double x2,
                                   double y2)
返回由指示控制點指定的二次曲線平面度(或者說從控制點到連接端點的線的最大距離)的平方。

參數:
x1 - 起始點的 X 坐標
y1 - 起始點的 Y 坐標
ctrlx - 控制點的 X 坐標
ctrly - 控制點的 Y 坐標
x2 - 結束點的 X 坐標
y2 - 結束點的 Y 坐標
返回:
由指定坐標定義的二次曲線平面度的平方。
從以下版本開始:
1.2

getFlatness

public static double getFlatness(double x1,
                                 double y1,
                                 double ctrlx,
                                 double ctrly,
                                 double x2,
                                 double y2)
返回由指示控制點指定的二次曲線平面度(或者說從控制點到連接端點的線的最大距離)。

參數:
x1 - 起始點的 X 坐標
y1 - 起始點的 Y 坐標
ctrlx - 控制點的 X 坐標
ctrly - 控制點的 Y 坐標
x2 - 結束點的 X 坐標
y2 - 結束點的 Y 坐標
返回:
由指定坐標定義的二次曲線平面度
從以下版本開始:
1.2

getFlatnessSq

public static double getFlatnessSq(double[] coords,
                                   int offset)
返回由控制點(存儲在指示陣列中的指示索引處)指定的二次曲線平面度(或者說從控制點到連接端點的線的最大距離)的平方。

參數:
coords - 套件含坐標值的陣列
offset - coords 中的索引,從此處開始從陣列中獲取值
返回:
由指定陣列指定索引處的值定義的二次曲線平面度。
從以下版本開始:
1.2

getFlatness

public static double getFlatness(double[] coords,
                                 int offset)
返回由控制點(存儲在指示陣列中的指示索引處)指定的二次曲線平面度(或者說從控制點到連接端點的線的最大距離)。

參數:
coords - 套件含坐標值的陣列
offset - coords 中的索引,從此處開始獲取坐標值
返回:
由指定陣列中指定偏移量定義的二次曲線平面度。
從以下版本開始:
1.2

getFlatnessSq

public double getFlatnessSq()
返回此 QuadCurve2D 的平面度(或者說從控制點到連接端點的線的最大距離)的平方。

返回:
QuadCurve2D 平面度的平方。
從以下版本開始:
1.2

getFlatness

public double getFlatness()
返回此 QuadCurve2D 的平面度(或者說從控制點到連接端點的線的最大距離)。

返回:
QuadCurve2D 的平面度。
從以下版本開始:
1.2

subdivide

public void subdivide(QuadCurve2D left,
                      QuadCurve2D right)
細分此 QuadCurve2D 並將得到的兩個細分曲線存儲到 leftright 曲線參數中。leftright 兩個物件的一個(或兩個)可以與 QuadCurve2D 物件相同,也可以為 null

參數:
left - 用於存儲左邊一半(或第一半)細分曲線的 QuadCurve2D 物件
right - 用於存儲右邊一半(或第二半)細分曲線的 QuadCurve2D 物件
從以下版本開始:
1.2

subdivide

public static void subdivide(QuadCurve2D src,
                             QuadCurve2D left,
                             QuadCurve2D right)
細分由 src 參數指定的二次曲線並將得到的兩個細分曲線存儲到 leftright 曲線參數中。leftright 兩個物件的任何一個或兩者都可以與 src 物件相同,也可以為 null

參數:
src - 要細分的二次曲線
left - 用於存儲左邊一半(或第一半)細分曲線的 QuadCurve2D 物件
right - 用於存儲右邊一半(或第二半)細分曲線的 QuadCurve2D 物件
從以下版本開始:
1.2

subdivide

public static void subdivide(double[] src,
                             int srcoff,
                             double[] left,
                             int leftoff,
                             double[] right,
                             int rightoff)
細分由存儲在 src 陣列 srcoff 到 (srcoff + 5) 索引處的坐標指定的二次曲線,並將得到的兩個細分曲線存儲到所得陣列的相應索引中。leftright 陣列中的一個(或兩個)可以為 null,也可以為到與 src 相同的陣列和偏移量的參考。注意,第一個細分曲線的最後一點就是第二個細分曲線的第一點。因此,可以為 leftright 傳遞相同的陣列,並使用偏移量(如 rightoff 等於 (leftoff + 4),以避免為此公共點分派額外的存儲區。

參數:
src - 保存源曲線坐標的陣列
srcoff - 6 個源坐標的開頭在陣列中的偏移量
left - 存儲第一半細分曲線坐標的陣列
leftoff - 6 個左坐標的開頭在陣列中的偏移量
right - 存儲第二半細分曲線坐標的陣列
rightoff - 6 個右坐標的開頭在陣列中的偏移量
從以下版本開始:
1.2

solveQuadratic

public static int solveQuadratic(double[] eqn)
解係數位於 eqn 陣列中的二次曲線,並將非複數的根放回該陣列,同時返回根數。用以下方程表示二次曲線的解:
     eqn = {C, B, A};
     ax^2 + bx + c = 0
 
返回值 -1 用於區分常數方程(可以始終為 0 或永遠不為 0)與不包含任何零的方程。

參數:
eqn - 套件含二次曲線係數的陣列
返回:
根數;如果方程是常數方程,則返回 -1
從以下版本開始:
1.2

solveQuadratic

public static int solveQuadratic(double[] eqn,
                                 double[] res)
解係數位於 eqn 陣列中的二次曲線,並將非複數的根放入 res 陣列,同時返回根數。用以下方程表示二次曲線的解:
     eqn = {C, B, A};
     ax^2 + bx + c = 0
 
返回值 -1 用於區分常數方程(可以始終為 0 或永遠不為 0)與不包含任何零的方程。

參數:
eqn - 用於解二次曲線方程的指定係數陣列
res - 套件含求解二次曲線方程所得非複數根的陣列
返回:
根數;如果方程是常數方程,則返回 -1
從以下版本開始:
1.3

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)

getBounds

public Rectangle getBounds()
返回一個完全包圍 Shape 的整型 Rectangle。注意,不保證返回的 Rectangle 是包圍 Shape 的最小邊界框,只保證 Shape 完全位於指示的 Rectangle 中。如果 Shape 超出了整數資料型別的有效範圍,則返回的 Rectangle 也可能不完全包圍 ShapegetBounds2D 方法由於在表示形式上具有更大的靈活性,所以通常返回更緊密的邊界框。

指定者:
介面 Shape 中的 getBounds
返回:
完全包圍 Shape 的整型 Rectangle
從以下版本開始:
1.2
另請參見:
Shape.getBounds2D()

getPathIterator

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

指定者:
介面 Shape 中的 getPathIterator
參數:
at - 要應用於形狀邊界的可選的 AffineTransform
返回:
定義形狀邊界的 PathIterator 物件。
從以下版本開始:
1.2

getPathIterator

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

指定者:
介面 Shape 中的 getPathIterator
參數:
at - 要應用於形狀邊界的可選的 AffineTransform
flatness - 在連接端點的直線取代曲線前,細分曲線的控制端點可以相對於連接此曲線端點的線的最大距離。
返回:
定義變平的形狀邊界的 PathIterator 物件。
從以下版本開始:
1.2

clone

public Object clone()
創建一個與此物件具有相同類別和相同內容的新物件。

覆寫:
類別 Object 中的 clone
返回:
此實例的一個副本。
拋出:
OutOfMemoryError - 如果沒有足夠的記憶體。
從以下版本開始:
1.2
另請參見:
Cloneable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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