- java.lang.Object
-
- java.awt.geom.QuadCurve2D
-
- 已知直接子类:
-
QuadCurve2D.Double,QuadCurve2D.Float
public abstract class QuadCurve2D extends Object implements Shape, Cloneable
QuadCurve2D类在(x,y)坐标空间中定义了二次参数曲线段。此类仅是存储2D二次曲线段的所有对象的抽象超类。 坐标的实际存储表示留给子类。
- 从以下版本开始:
- 1.2
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static classQuadCurve2D.Double用double坐标指定的二次参数曲线段。static classQuadCurve2D.Float用float坐标指定的二次参数曲线段。
-
构造方法摘要
构造方法 变量 构造器 描述 protectedQuadCurve2D()这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 Objectclone()创建与此对象具有相同类并具有相同内容的新对象。booleancontains(double x, double y)测试指定的坐标是否在Shape的边界内,如 definition of insideness所述 。booleancontains(double x, double y, double w, double h)测试Shape的内部Shape完全包含指定的矩形区域。booleancontains(Point2D p)测试指定Point2D是的边界内Shape,如所描述的definition of insideness 。booleancontains(Rectangle2D r)测试Shape的内部Shape完全包含指定的Rectangle2D。RectanglegetBounds()返回一个整数Rectangle完全包围Shape。abstract Point2DgetCtrlPt()返回控制点。abstract doublegetCtrlX()以double精度返回控制点的X坐标。abstract doublegetCtrlY()以double精度返回控制点的Y坐标。doublegetFlatness()返回此QuadCurve2D的平坦度或控制点与连接端点的直线的最大距离。static doublegetFlatness(double[] coords, int offset)返回控制点与连接端点的直线的平面度或最大距离,由指定索引处指示的数组中存储的控制点指定的二次曲线。static doublegetFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)返回控制点与连接端点的直线的平面度或最大距离,由指示的控制点指定的二次曲线。doublegetFlatnessSq()返回此QuadCurve2D的平坦度的平方,或控制点与连接端点的直线的最大距离。static doublegetFlatnessSq(double[] coords, int offset)返回由指定索引处的指示数组中存储的控制点指定的二次曲线的平坦度的平方或控制点与连接端点的线的最大距离。static doublegetFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)返回由指示的控制点指定的二次曲线的平坦度的平方,或控制点与连接端点的直线的最大距离。abstract Point2DgetP1()返回起点。abstract Point2DgetP2()返回结束点。PathIteratorgetPathIterator(AffineTransform at)返回一个迭代对象,该对象定义此QuadCurve2D的形状边界。PathIteratorgetPathIterator(AffineTransform at, double flatness)返回一个迭代对象,该对象定义此QuadCurve2D的展平形状的QuadCurve2D。abstract doublegetX1()以精度返回double中起点的X坐标。abstract doublegetX2()以double精度返回结束点的X坐标。abstract doublegetY1()以double精度返回起点的Y坐标。abstract doublegetY2()以double精度返回结束点的Y坐标。booleanintersects(double x, double y, double w, double h)测试Shape的内部是否与指定矩形区域的内部相交。booleanintersects(Rectangle2D r)测试Shape的内部是否与指定的Rectangle2D的内部相交。voidsetCurve(double[] coords, int offset)将此QuadCurve2D的端点和控制点的位置设置为指定数组中指定偏移处的double坐标。abstract voidsetCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)将此曲线的终点和控制点的位置设置为指定的double坐标。voidsetCurve(Point2D[] pts, int offset)将此QuadCurve2D的端点和控制点的位置设置为指定数组中指定偏移处的Point2D对象的坐标。voidsetCurve(Point2D p1, Point2D cp, Point2D p2)将此QuadCurve2D的终点和控制点的位置设置为指定的Point2D坐标。voidsetCurve(QuadCurve2D c)将此QuadCurve2D的终点和控制点的位置设置为与指定的QuadCurve2D的相同。static intsolveQuadratic(double[] eqn)eqn其系数在eqn数组中的二次方,并将非复数根返回到同一个数组中,返回根数。static intsolveQuadratic(double[] eqn, double[] res)eqn其系数在eqn数组中的二次eqn,并将非复数根置于res数组中,返回根数。static voidsubdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)将由存储在src数组中的坐标指定的二次曲线细分为索引srcoff到srcoff+ 5,并将得到的两条细分曲线存储到相应索引处的两个结果数组中。voidsubdivide(QuadCurve2D left, QuadCurve2D right)细分此QuadCurve2D并将得到的两条细分曲线存储到left和right曲线参数中。static voidsubdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)细分由src参数指定的二次曲线,并将得到的两条细分曲线存储到left和right曲线参数中。-
声明方法的类 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()
返回起点。- 结果
-
Point2D这是QuadCurve2D。 - 从以下版本开始:
- 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()
返回结束点。- 结果
-
Point对象,它是此Point2D。 - 从以下版本开始:
- 1.2
-
setCurve
public abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)将此曲线的终点和控制点的位置设置为指定的double坐标。- 参数
-
x1-x1的X坐标 -
y1-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-x1的X坐标 -
y1-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-x1的X坐标 -
y1-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并将生成的两条细分曲线存储到left和right曲线参数中。left和right对象中的任何一个或两个都可以与此QuadCurve2D或null相同。- 参数
-
left- 用于存储细分曲线的左半部分或前半部分的QuadCurve2D对象 -
right- 用于存储细分曲线的右半部分或后半部分的QuadCurve2D对象 - 从以下版本开始:
- 1.2
-
subdivide
public static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)
细分由src参数指定的二次曲线,并将得到的两条细分曲线存储到left和right曲线参数中。left和right对象中的任何一个或两者可以与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,并将得到的两条细分曲线存储到相应索引处的两个结果数组中。left和right阵列中的任何一个或两者可以是null或对src阵列的相同阵列和偏移的src。 请注意,第一个细分曲线中的最后一个点与第二个细分曲线中的第一个点相同。 因此,可以为left和right传递相同的数组,并使用偏移量使rightoff等于leftoff+ 4,以避免为此公共点分配额外的存储空间。- 参数
-
src- 包含源曲线坐标的数组 -
srcoff- 6个源坐标开头的数组偏移量 -
left- 用于存储细分曲线前半部分坐标的数组 -
leftoff- 6个左坐标开头的数组偏移量 -
right- 用于存储细分曲线后半部分坐标的数组 -
rightoff- 6个右坐标开头的数组偏移量 - 从以下版本开始:
- 1.2
-
solveQuadratic
public static int solveQuadratic(double[] eqn)
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其系数在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的边界内,如 definition of insideness所述 。
-
contains
public boolean contains(Point2D p)
测试指定Point2D是的边界内Shape,如所描述的definition of insideness 。
-
intersects
public boolean intersects(double x, double y, double w, double h)测试Shape的内部是否与指定矩形区域的内部相交。 矩形区域被认为是交叉的Shape如果任何点被包含在双方的内部Shape和指定的矩形区域。Shape.intersects()方法允许Shape实现在Shape情况下保守地返回true:- 矩形区域与
Shape交叉的概率很高,但是 - 精确确定这个交叉点的计算非常昂贵。
Shapes这种方法也可能返回true即使矩形区域没有相交Shape。Area类比大多数Shape对象执行更精确的几何交叉计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
intersects接口Shape - 参数
-
x- 指定矩形区域左上角的X坐标 -
y- 指定矩形区域左上角的Y坐标 -
w- 指定矩形区域的宽度 -
h- 指定矩形区域的高度 - 结果
-
true如果Shape的内部与矩形区域的内部相交,或者两者都很可能相交,并且交叉计算将太昂贵而无法执行; 否则为false。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Area
- 矩形区域与
-
intersects
public boolean intersects(Rectangle2D r)
测试Shape的内部是否与指定的Rectangle2D的内部相交。 在以下情况下,Shape.intersects()方法允许Shape实施保守地返回true:-
Rectangle2D与Shape相交的概率很高,但是 - 精确确定这个交叉点的计算非常昂贵。
Shapes这种方法也可能返回true即使Rectangle2D不相交Shape。Area类比大多数Shape对象执行更精确的几何交集计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
intersects接口Shape - 参数
-
r- 指定的Rectangle2D - 结果
-
true如果Shape的内部与指定的Rectangle2D的内部相交,或者两者都很可能相交并且交叉计算的成本太高而无法执行; 否则为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。Shape.contains()方法允许Shape实现在Shape情况下保守地返回false:-
intersect方法返回true和 - 用于确定
Shape是否完全包含矩形区域的计算非常昂贵。
Shapes即使Shape包含矩形区域,此方法也可能返回false。Area类比大多数Shape对象执行更精确的几何计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
contains接口Shape - 参数
-
x- 指定矩形区域左上角的X坐标 -
y- 指定矩形区域左上角的Y坐标 -
w- 指定矩形区域的宽度 -
h- 指定矩形区域的高度 - 结果
-
true如果内部Shape完全包含指定矩形区域;false否则或者,如果Shape包含矩形区域并且intersects方法返回true并且包含计算将太昂贵而无法执行。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Area,Shape.intersects(double, double, double, double)
-
-
contains
public boolean contains(Rectangle2D r)
测试Shape的内部Shape完全包含指定的Rectangle2D。Shape.contains()方法允许Shape实现保守地返回false:-
intersect方法返回true和 - 用于确定
Shape是否完全包含Rectangle2D的计算非常昂贵。
Shapes这种方法也可能返回false即使Shape包含Rectangle2D。Area类比大多数Shape对象执行更精确的几何计算,因此如果需要更精确的答案,则可以使用它。- Specified by:
-
contains接口Shape - 参数
-
r- 指定的Rectangle2D - 结果
-
true如果内部Shape完全包含Rectangle2D;false否则或者,如果Shape包含Rectangle2D并且intersects方法返回true并且包含计算将太昂贵而无法执行。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.contains(double, double, double, double)
-
-
getBounds
public Rectangle getBounds()
返回一个整数Rectangle完全包围Shape。 请注意,不保证返回的Rectangle是最小的边框包围Shape,只表示Shape完全在指定的范围内Rectangle。 如果Shape溢出整数数据类型的有限范围,则返回的Rectangle也可能无法完全包含Shape。getBounds2D方法通常返回更严格的边界框,因为它具有更强的表示灵活性。请注意, definition of insideness可能会导致4665961458035定义轮廓上的
shape可能不被视为包含在返回的bounds对象中,但仅限于原始shape不包含这些点的情况。如果
point是内部shape根据contains(point)方法,那么它必须是内部返回Rectangle界限根据对象contains(point)所述的方法bounds。 特别:shape.contains(x,y)需要bounds.contains(x,y)如果
point不在shape,则它可能仍包含在bounds对象中:bounds.contains(x,y)并不shape.contains(x,y)- Specified by:
-
getBounds接口Shape - 结果
-
整数
Rectangle,完全包含Shape。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Shape.getBounds2D()
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at)
返回一个迭代对象,该对象定义此QuadCurve2D的形状边界。 此类的迭代器不是多线程安全的,这意味着此QuadCurve2D类不保证对此QuadCurve2D对象的几何的修改不会影响已在进行中的该几何的任何迭代。- Specified by:
-
getPathIterator接口Shape - 参数
-
at- 可选的AffineTransform应用于形状边界 - 结果
-
定义形状边界的
PathIterator对象。 - 从以下版本开始:
- 1.2
-
getPathIterator
public PathIterator getPathIterator(AffineTransform at, double flatness)
返回一个迭代对象,该对象定义此QuadCurve2D的展平形状的QuadCurve2D。 此类的迭代器不是多线程安全的,这意味着此QuadCurve2D类不保证对此QuadCurve2D对象的几何的修改不会影响已在进行的该几何的任何迭代。- Specified by:
-
getPathIterator,界面Shape - 参数
-
at- 可选的AffineTransform应用于形状的边界 -
flatness- 在连接端点的直线替换此曲线之前,细分曲线的控制点相对于连接此曲线端点的直线的最大距离。 - 结果
-
PathIterator对象,用于定义形状的展平边界。 - 从以下版本开始:
- 1.2
-
clone
public Object clone()
创建与此对象具有相同类并具有相同内容的新对象。- 重写:
-
clone类Object - 结果
- 这个实例的克隆。
- 异常
-
OutOfMemoryError- 如果没有足够的内存。 - 从以下版本开始:
- 1.2
- 另请参见:
-
Cloneable
-
-