|
JavaTM 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 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。