JavaTM 2 Platform
Standard Ed. 6

java.awt.geom
類別 CubicCurve2D

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

public abstract class CubicCurve2D
extends Object
implements Shape, Cloneable

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

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

從以下版本開始:
1.2

巢狀類別摘要
static class CubicCurve2D.Double
          使用 double 坐標指定的三次參數曲線段。
static class CubicCurve2D.Float
          使用 float 坐標指定的三次參數曲線段。
 
建構子摘要
protected CubicCurve2D()
          這是一個不可直接實例化的抽象類別。
 
方法摘要
 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 getCtrlP1()
          返回第一個控制點。
abstract  Point2D getCtrlP2()
          返回第二個控制點。
abstract  double getCtrlX1()
          以 double 精度返回第一個控制點的 X 坐標。
abstract  double getCtrlX2()
          以 double 精度返回第二個控制點的 X 坐標。
abstract  double getCtrlY1()
          以 double 精度返回第一個控制點的 Y 坐標。
abstract  double getCtrlY2()
          以 double 精度返回第二個控制點的 Y 坐標。
 double getFlatness()
          返回此曲線的平面度。
static double getFlatness(double[] coords, int offset)
          返回由控制點(存儲在指示陣列中的指示索引處)指定的三次曲線的平面度。
static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
          返回由指示控制點指定的三次曲線的平面度。
 double getFlatnessSq()
          返回此曲線平面度的平方。
static double getFlatnessSq(double[] coords, int offset)
          返回由控制點(存儲在指示陣列中的指示索引處)指定的三次曲線平面度的平方。
static double getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
          返回由指示的控制點指定的三次曲線平面度的平方。
abstract  Point2D getP1()
          返回起始點。
abstract  Point2D getP2()
          返回結束點。
 PathIterator getPathIterator(AffineTransform at)
          返回定義形狀邊界的迭代物件。
 PathIterator getPathIterator(AffineTransform at, double flatness)
          返回定義變平形狀邊界的迭代物件。
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(CubicCurve2D c)
          將此曲線端點和控制點的位置設置為與指定的 CubicCurve2D 相同。
 void setCurve(double[] coords, int offset)
          將此曲線端點和控制點的位置設置為指定陣列中指定偏移量的 double 坐標。
abstract  void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
          將此曲線端點和控制點的位置設置為指定的 double 坐標。
 void setCurve(Point2D[] pts, int offset)
          將此曲線端點和控制點的位置設置為指定陣列中指定偏移量的 Point2D 物件的坐標。
 void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)
          將此曲線端點和控制點的位置設置為指定的 Point2D 坐標。
static int solveCubic(double[] eqn)
          解係數位於 eqn 陣列中的三次曲線,並將非複數的根放回該陣列,同時返回根數。
static int solveCubic(double[] eqn, double[] res)
          解係數位於 eqn 陣列中的三次曲線,並將非複數的根放入 res 陣列,同時返回根數。
 void subdivide(CubicCurve2D left, CubicCurve2D right)
          細分此三次曲線,並將得到的兩個細分曲線存儲到 left 和 right 曲線參數中。
static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right)
          細分由 src 參數指定的三次曲線,並將得到的兩個細分曲線存儲到 leftright 曲線參數中。
static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
          細分由存儲在 src 陣列 srcoff 到 (srcoff + 7) 索引處的坐標指定的三次曲線,並將得到的兩個細分曲線存儲到所得陣列的相應索引中。
 
從類別 java.lang.Object 繼承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
從介面 java.awt.Shape 繼承的方法
getBounds2D
 

建構子詳細資訊

CubicCurve2D

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

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

getX1

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

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

getY1

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

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

getP1

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

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

getCtrlX1

public abstract double getCtrlX1()
以 double 精度返回第一個控制點的 X 坐標。

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

getCtrlY1

public abstract double getCtrlY1()
以 double 精度返回第一個控制點的 Y 坐標。

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

getCtrlP1

public abstract Point2D getCtrlP1()
返回第一個控制點。

返回:
CubicCurve2D 第一個控制點的 Point2D
從以下版本開始:
1.2

getCtrlX2

public abstract double getCtrlX2()
以 double 精度返回第二個控制點的 X 坐標。

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

getCtrlY2

public abstract double getCtrlY2()
以 double 精度返回第二個控制點的 Y 坐標。

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

getCtrlP2

public abstract Point2D getCtrlP2()
返回第二個控制點。

返回:
作為 CubicCurve2D 第二個控制點的 Point2D
從以下版本開始:
1.2

getX2

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

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

getY2

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

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

getP2

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

返回:
作為 CubicCurve2D 結束點的 Point2D
從以下版本開始:
1.2

setCurve

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

參數:
x1 - 用於設置此 CubicCurve2D 起始點的 X 坐標
y1 - 用於設置此 CubicCurve2D 起始點的 Y 坐標
ctrlx1 - 用於設置此 CubicCurve2D 第一個控制點的 X 坐標
ctrly1 - 用於設置此 CubicCurve2D 第一個控制點的 Y 坐標
ctrlx2 - 用於設置此 CubicCurve2D 第二個控制點的 X 坐標
ctrly2 - 用於設置此 CubicCurve2D 第二個控制點的 Y 坐標
x2 - 用於設置此 CubicCurve2D 結束點的 X 坐標
y2 - 用於設置此 CubicCurve2D 結束點的 Y 坐標
從以下版本開始:
1.2

setCurve

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

參數:
coords - 套件含坐標的 double 陣列
offset - coords 的索引,從該索引處開始將此曲線端點和控制點設置為 coords 中包含的坐標
從以下版本開始:
1.2

setCurve

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

參數:
p1 - 用於設置此曲線起始點的第一個指定的 Point2D
cp1 - 用於設置此曲線第一個控制點的第二個指定的 Point2D
cp2 - 用於設置此曲線第二個控制點的第三個指定的 Point2D
p2 - 用於設置此曲線結束點的第四個指定的 Point2D
從以下版本開始:
1.2

setCurve

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

參數:
pts - Point2D 物件陣列
offset - pts 的索引,從該索引處開始將此曲線端點和控制點設置為 pts 中包含的點
從以下版本開始:
1.2

setCurve

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

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

getFlatnessSq

public static double getFlatnessSq(double x1,
                                   double y1,
                                   double ctrlx1,
                                   double ctrly1,
                                   double ctrlx2,
                                   double ctrly2,
                                   double x2,
                                   double y2)
返回由指示的控制點指定的三次曲線平面度的平方。平面度是控制點到連接端點的線之間的最大距離。

參數:
x1 - 指定 CubicCurve2D 起始點的 X 坐標
y1 - 指定 CubicCurve2D 起始點的 Y 坐標
ctrlx1 - 指定 CubicCurve2D 第一個控制點的 X 坐標
ctrly1 - 指定 CubicCurve2D 第一個控制點的 Y 坐標
ctrlx2 - 指定 CubicCurve2D 第二個控制點的 X 坐標
ctrly2 - 指定 CubicCurve2D 第二個控制點的 Y 坐標
x2 - 指定 CubicCurve2D 結束點的 X 坐標
y2 - 指定 CubicCurve2D 結束點的 Y 坐標
返回:
用指定坐標表示的 CubicCurve2D 平面度的平方。
從以下版本開始:
1.2

getFlatness

public static double getFlatness(double x1,
                                 double y1,
                                 double ctrlx1,
                                 double ctrly1,
                                 double ctrlx2,
                                 double ctrly2,
                                 double x2,
                                 double y2)
返回由指示控制點指定的三次曲線的平面度。平面度是控制點到連接端點的線之間的最大距離。

參數:
x1 - 指定 CubicCurve2D 起始點的 X 坐標
y1 - 指定 CubicCurve2D 起始點的 Y 坐標
ctrlx1 - 指定 CubicCurve2D 第一個控制點的 X 坐標
ctrly1 - 指定 CubicCurve2D 第一個控制點的 Y 坐標
ctrlx2 - 指定 CubicCurve2D 第二個控制點的 X 坐標
ctrly2 - 指定 CubicCurve2D 第二個控制點的 Y 坐標
x2 - 指定 CubicCurve2D 結束點的 X 坐標
y2 - 指定 CubicCurve2D 結束點的 Y 坐標
返回:
用指定坐標表示的 CubicCurve2D 平面度。
從以下版本開始:
1.2

getFlatnessSq

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

參數:
coords - 套件含坐標的陣列
offset - coords 的索引,從該索引處開始設置此曲線的端點和控制點
返回:
coords 中指定偏移量處的坐標指定的 CubicCurve2D 平面度的平方。
從以下版本開始:
1.2

getFlatness

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

參數:
coords - 套件含坐標的陣列
offset - coords 的索引,從該索引處開始設置此曲線的端點和控制點
返回:
coords 中指定偏移量處的坐標指定的 CubicCurve2D 平面度。
從以下版本開始:
1.2

getFlatnessSq

public double getFlatnessSq()
返回此曲線平面度的平方。平面度是控制點到連接端點的線之間的最大距離。

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

getFlatness

public double getFlatness()
返回此曲線的平面度。平面度是控制點到連接端點的線之間的最大距離。

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

subdivide

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

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

subdivide

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

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

subdivide

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

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

solveCubic

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

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

solveCubic

public static int solveCubic(double[] eqn,
                             double[] res)
解係數位於 eqn 陣列中的三次曲線,並將非複數的根放入 res 陣列,同時返回根數。用以下方程表示三次曲線的解:eqn = {c, b, a, d} dx^3 + 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)
返回定義形狀邊界的迭代物件。此類別的迭代器不是多執行緒安全的,這意味著此 CubicCurve2D 類別不保證對此 CubicCurve2D 物件幾何形狀所作的修改不會影響該幾何形狀中正進行的迭代。

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

getPathIterator

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

指定者:
介面 Shape 中的 getPathIterator
參數:
at - 一個可選的 AffineTransform,用於迭代中返回的坐標;如果需要未變換的坐標,則為 null
flatness - 在由連接端點的直線取代細分曲線之前,給定曲線的控制點可以從共線變化的最大量
返回:
返回此 CubicCurve2D 輪廓幾何形狀的 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