|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.geom.CubicCurve2D
public abstract class CubicCurve2D
CubicCurve2D
類別定義 (x,y)
坐標空間內的三次參數曲線段。
此類別是所有存儲 2D 三次曲線段的物件的惟一抽象父級類別。坐標的實際存儲表示形式由子類別決定。
巢狀類別摘要 | |
---|---|
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 參數指定的三次曲線,並將得到的兩個細分曲線存儲到 left 和 right 曲線參數中。 |
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 |
建構子詳細資訊 |
---|
protected CubicCurve2D()
CubicCurve2D.Float
,
CubicCurve2D.Double
方法詳細資訊 |
---|
public abstract double getX1()
CubicCurve2D
起始點的 X 坐標。public abstract double getY1()
CubicCurve2D
起始點的 Y 坐標。public abstract Point2D getP1()
CubicCurve2D
起始點的 Point2D
。public abstract double getCtrlX1()
CubicCurve2D
第一個控制點的 X 坐標。public abstract double getCtrlY1()
CubicCurve2D
第一個控制點的 Y 坐標。public abstract Point2D getCtrlP1()
CubicCurve2D
第一個控制點的 Point2D
。public abstract double getCtrlX2()
CubicCurve2D
第二個控制點的 X 坐標。public abstract double getCtrlY2()
CubicCurve2D
第二個控制點的 Y 坐標。public abstract Point2D getCtrlP2()
CubicCurve2D
第二個控制點的 Point2D
。public abstract double getX2()
CubicCurve2D
結束點的 X 坐標。public abstract double getY2()
CubicCurve2D
結束點的 Y 坐標。public abstract Point2D getP2()
CubicCurve2D
結束點的 Point2D
。public abstract void setCurve(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 坐標public void setCurve(double[] coords, int offset)
coords
- 套件含坐標的 double 陣列offset
- coords
的索引,從該索引處開始將此曲線端點和控制點設置為 coords
中包含的坐標public void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)
Point2D
坐標。
p1
- 用於設置此曲線起始點的第一個指定的 Point2D
cp1
- 用於設置此曲線第一個控制點的第二個指定的 Point2D
cp2
- 用於設置此曲線第二個控制點的第三個指定的 Point2D
p2
- 用於設置此曲線結束點的第四個指定的 Point2D
public void setCurve(Point2D[] pts, int offset)
Point2D
物件的坐標。
pts
- Point2D
物件陣列offset
- pts
的索引,從該索引處開始將此曲線端點和控制點設置為 pts
中包含的點public void setCurve(CubicCurve2D c)
CubicCurve2D
相同。
c
- 指定的 CubicCurve2D
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
平面度的平方。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
平面度。public static double getFlatnessSq(double[] coords, int offset)
coords
- 套件含坐標的陣列offset
- coords
的索引,從該索引處開始設置此曲線的端點和控制點
coords
中指定偏移量處的坐標指定的 CubicCurve2D
平面度的平方。public static double getFlatness(double[] coords, int offset)
coords
- 套件含坐標的陣列offset
- coords
的索引,從該索引處開始設置此曲線的端點和控制點
coords
中指定偏移量處的坐標指定的 CubicCurve2D
平面度。public double getFlatnessSq()
public double getFlatness()
public void subdivide(CubicCurve2D left, CubicCurve2D right)
left
- 用於存儲左邊一半(或第一半)細分曲線的三次曲線物件right
- 用於存儲右邊一半(或第二半)細分曲線的三次曲線物件public static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right)
src
參數指定的三次曲線,並將得到的兩個細分曲線存儲到 left
和 right
曲線參數中。left
和 right
兩個物件的一個(或兩個)可以與 src
物件相同,也可以為 null
。
src
- 要細分的三次曲線left
- 用於存儲左邊一半(或第一半)細分曲線的三次曲線物件right
- 用於存儲右邊一半(或第二半)細分曲線的三次曲線物件public static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
src
陣列 srcoff
到 (srcoff
+ 7) 索引處的坐標指定的三次曲線,並將得到的兩個細分曲線存儲到所得陣列的相應索引中。left
和 right
陣列中的一個(或兩者)可以為 null
,也可以是到與 src
相同的陣列的參考。注意,第一個細分曲線的最後一點就是第二個細分曲線的第一點。因此,可以為 left
和 right
傳遞相同的陣列並使用偏移量(如 rightoff
等於 (leftoff
+ 6)),以避免為此公共點分派額外的存儲區。
src
- 保存源曲線坐標的陣列srcoff
- 6 個源坐標的開頭在陣列中的偏移量left
- 存儲第一半細分曲線坐標的陣列leftoff
- 6 個左坐標的開頭在陣列中的偏移量right
- 存儲第二半細分曲線坐標的陣列rightoff
- 6 個右坐標的開頭在陣列中的偏移量public static int solveCubic(double[] eqn)
eqn
陣列中的三次曲線,並將非複數的根放回該陣列,同時返回根數。用以下方程表示三次曲線的解:
eqn = {c, b, a, d} dx^3 + ax^2 + bx + c = 0返回值 -1 用於區分常數方程(可以始終為 0 或永遠不為 0)與不包含任何零的方程。
eqn
- 套件含三次曲線係數的陣列
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
- 套件含求解三次曲線方程所得非複數根的陣列
public boolean contains(double x, double y)
Shape
的邊界內。
Shape
中的 contains
x
- 要測試的指定的 X 坐標y
- 要測試的指定的 Y 坐標
Shape
邊界內,則返回 true
;否則返回 false
。public boolean contains(Point2D p)
Point2D
是否在 Shape
的邊界內。
Shape
中的 contains
p
- 要測試的指定的 Point2D
Point2D
在 Shape
邊界內,則返回 true
;否則返回 false
。public boolean intersects(double x, double y, double w, double h)
Shape
內部是否與指定矩形區域的內部相交。如果任何一個點既包含在 Shape
內,又包含在指定矩形區域內,則認為矩形區域與 Shape
相交。
在下列情況下,Shape.intersects()
方法允許 Shape
實作謹慎地返回 true
:
Shape
相交的可能性很大,但是
Shape
,即使矩形區域沒有與該 Shape
相交,此方法也可能返回 true
。如果需要更精確的答案,由於 Area
類別比大多數 Shape
物件更為準確地計算幾何相交,因此可以使用該類別。
Shape
中的 intersects
x
- 指定矩形區域左上角的 X 坐標y
- 指定矩形區域左上角的 Y 坐標w
- 指定矩形區域的寬度h
- 指定矩形區域的高度
Shape
的內部區域與矩形的內部區域相交,或者相交的可能性很大且執行計算的代價太高,則返回 true
;否則返回 false
。Area
public boolean intersects(Rectangle2D r)
Shape
內部是否與指定 Rectangle2D
內部相交。在下列情況下,Shape.intersects()
方法允許 Shape
實作謹慎地返回 true
:
Rectangle2D
與 Shape
相交的可能性很大,但是
Shape
,即使 Rectangle2D
沒有與該 Shape
相交,此方法也可能返回 true
。如果需要更精確的答案,由於 Area
類別比大多數 Shape
物件更為準確地計算幾何相交,因此可以使用該類別。
Shape
中的 intersects
r
- 指定的 Rectangle2D
Shape
內部與指定 Rectangle2D
內部相交,或者相交的可能性很大且執行計算的代價太高,則返回 true
;否則返回 false
。Shape.intersects(double, double, double, double)
public 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
物件更為準確地執行幾何計算,因此可以使用該類別。
Shape
中的 contains
x
- 指定矩形區域左上角的 X 坐標y
- 指定矩形區域左上角的 Y 坐標w
- 指定矩形區域的寬度h
- 指定矩形區域的高度
Shape
內部完全包含指定矩形區域,則返回 true
;否則,如果 Shape
套件含矩形區域、intersects
方法返回 true
且執行包含計算代價太高,則返回 false
。Area
,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Shape
內部是否完全包含指定的 Rectangle2D
。在下列情況下,Shape.contains()
方法允許 Shape
實作謹慎地返回 false
:
intersect
方法返回 true
並且
Shape
是否完全包含 Rectangle2D
的代價太高。
Shape
,即使 Shape
套件含 Rectangle2D
,此方法也可能返回 false
。如果需要更精確的答案,由於 Area
類別比大多數 Shape
物件更為準確地執行幾何計算,因此可以使用該類別。
Shape
中的 contains
r
- 指定的 Rectangle2D
Shape
內部完全包含 Rectangle2D
,則返回 true
;否則,如果 Shape
套件含 Rectangle2D
、intersects
方法返回 true
且執行包含計算代價太高,則返回 false
。Shape.contains(double, double, double, double)
public Rectangle getBounds()
Shape
的整型 Rectangle
。注意,不保證返回的 Rectangle
是包圍 Shape
的最小邊界框,只保證 Shape
完全位於指示的 Rectangle
中。如果 Shape
超出了整數資料型別的有效範圍,則返回的 Rectangle
也可能不完全包圍 Shape
。getBounds2D
方法由於在表示形式上具有更大的靈活性,所以通常返回更緊密的邊界框。
Shape
中的 getBounds
Shape
的整型 Rectangle
。Shape.getBounds2D()
public PathIterator getPathIterator(AffineTransform at)
CubicCurve2D
類別不保證對此 CubicCurve2D
物件幾何形狀所作的修改不會影響該幾何形狀中正進行的迭代。
Shape
中的 getPathIterator
at
- 一個可選的 AffineTransform
,用於在迭代中返回的坐標;如果需要未變換的坐標,則為 null
CubicCurve2D
輪廓幾何形狀的 PathIterator
物件,一次一段。public PathIterator getPathIterator(AffineTransform at, double flatness)
CubicCurve2D
類別不保證對此 CubicCurve2D
物件幾何形狀所作的修改不會影響該幾何形狀中正在進行的迭代。
Shape
中的 getPathIterator
at
- 一個可選的 AffineTransform
,用於迭代中返回的坐標;如果需要未變換的坐標,則為 null
flatness
- 在由連接端點的直線取代細分曲線之前,給定曲線的控制點可以從共線變化的最大量
CubicCurve2D
輪廓幾何形狀的 PathIterator
物件,一次一段。public Object clone()
Object
中的 clone
OutOfMemoryError
- 如果沒有足夠的記憶體。Cloneable
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。