|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.geom.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)
测试指定坐标是否位于形状的边界内。 |
boolean |
contains(double x,
double y,
double w,
double h)
测试形状的内部是否完全包含指定设置的矩形坐标。 |
boolean |
contains(Point2D p)
测试指定 Point2D 是否在形状的边界内。 |
boolean |
contains(Rectangle2D r)
测试形状的内部是否完全包含指定的 Rectangle2D 。 |
Rectangle |
getBounds()
返回形状的边界框。 |
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)
测试形状是否与指定设置的矩形坐标的内部相交。 |
boolean |
intersects(Rectangle2D r)
测试形状是否与指定 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()
方法详细信息 |
---|
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, y1
- 用于设置此 CubicCurve2D
起始点的第一个指定坐标ctrlx1, ctrly1
- 用于设置此 CubicCurve2D
第一个控制点的第二个指定坐标ctrlx2, ctrly2
- 用于设置此 CubicCurve2D
第二个控制点的第三个指定坐标x2, y2
- 用于设置此 CubicCurve2D
结束点的第四个指定坐标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, y1
- 指定 CubicCurve2D
起始点的第一个指定的坐标ctrlx1, ctrly1
- 指定 CubicCurve2D
第一个控制点的第二个指定的坐标ctrlx2, ctrly2
- 指定 CubicCurve2D
第二个控制点的第三个指定的坐标x2, y2
- 指定 CubicCurve2D
结束点的第四个指定的坐标
CubicCurve2D
平面度的平方。public static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
x1, y1
- 指定 CubicCurve2D
起始点的第一个指定的坐标ctrlx1, ctrly1
- 指定 CubicCurve2D
第一个控制点的第二个指定的坐标ctrlx2, ctrly2
- 指定 CubicCurve2D
第二个控制点的第三个指定的坐标x2, y2
- 指定 CubicCurve2D
结束点的第四个指定的坐标
CubicCurve2D
的平面度。public static double getFlatnessSq(double[] coords, int offset)
coords
- 包含坐标的数组offset
- coords
的索引,从该索引处开始将此曲线端点和控制点设置为 coords
中包含的坐标
coords
中指定偏移量处的坐标指定的 CubicCurve2D
平面度的平方。public static double getFlatness(double[] coords, int offset)
coords
- 包含坐标的数组offset
- coords
的索引,从该索引处开始将此曲线端点和控制点设置为 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)
public boolean contains(Point2D p)
Point2D
是否在形状的边界内。
p
- 要测试的指定 Point2D
p
在形状的边界内,则返回 true
;否则返回 false
。public boolean intersects(double x, double y, double w, double h)
Shape
中的 intersects
x, y
- 指定矩形区域的左上角的坐标w
- 指定矩形区域的宽度h
- 指定矩形区域的高度
true
;否则返回 false
。Area
public boolean intersects(Rectangle2D r)
Rectangle2D
的内部相交。
Shape
中的 intersects
r
- 要测试的指定 Rectangle2D
Rectangle2D
的内部相交,则返回 true
;否则返回 false
。Shape.intersects(double, double, double, double)
public boolean contains(double x, double y, double w, double h)
x, y
- 指定矩形形状左上角的坐标w
- 指定矩形形状的宽度h
- 指定矩形形状的高度
true
;否则返回 false
。Area
,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Rectangle2D
。
r
- 要测试的指定 Rectangle2D
Rectangle2D
,则返回 true
;否则返回 false
。Shape.contains(double, double, double, double)
public Rectangle getBounds()
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()
OutOfMemoryError
- 如果没有足够的内存。Cloneable
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。