- 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 class
QuadCurve2D.Double
用double
坐标指定的二次参数曲线段。static class
QuadCurve2D.Float
用float
坐标指定的二次参数曲线段。
-
构造方法摘要
构造方法 变量 构造器 描述 protected
QuadCurve2D()
这是一个无法直接实例化的抽象类。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 Object
clone()
创建与此对象具有相同类并具有相同内容的新对象。boolean
contains(double x, double y)
测试指定的坐标是否在Shape
的边界内,如 definition of insideness所述 。boolean
contains(double x, double y, double w, double h)
测试Shape
的内部Shape
完全包含指定的矩形区域。boolean
contains(Point2D p)
测试指定Point2D
是的边界内Shape
,如所描述的definition of insideness 。boolean
contains(Rectangle2D r)
测试Shape
的内部Shape
完全包含指定的Rectangle2D
。Rectangle
getBounds()
返回一个整数Rectangle
完全包围Shape
。abstract Point2D
getCtrlPt()
返回控制点。abstract double
getCtrlX()
以double
精度返回控制点的X坐标。abstract double
getCtrlY()
以double
精度返回控制点的Y坐标。double
getFlatness()
返回此QuadCurve2D
的平坦度或控制点与连接端点的直线的最大距离。static double
getFlatness(double[] coords, int offset)
返回控制点与连接端点的直线的平面度或最大距离,由指定索引处指示的数组中存储的控制点指定的二次曲线。static double
getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
返回控制点与连接端点的直线的平面度或最大距离,由指示的控制点指定的二次曲线。double
getFlatnessSq()
返回此QuadCurve2D
的平坦度的平方,或控制点与连接端点的直线的最大距离。static double
getFlatnessSq(double[] coords, int offset)
返回由指定索引处的指示数组中存储的控制点指定的二次曲线的平坦度的平方或控制点与连接端点的线的最大距离。static double
getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
返回由指示的控制点指定的二次曲线的平坦度的平方,或控制点与连接端点的直线的最大距离。abstract Point2D
getP1()
返回起点。abstract Point2D
getP2()
返回结束点。PathIterator
getPathIterator(AffineTransform at)
返回一个迭代对象,该对象定义此QuadCurve2D
的形状边界。PathIterator
getPathIterator(AffineTransform at, double flatness)
返回一个迭代对象,该对象定义此QuadCurve2D
的展平形状的QuadCurve2D
。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(double[] coords, int offset)
将此QuadCurve2D
的端点和控制点的位置设置为指定数组中指定偏移处的double
坐标。abstract void
setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)
将此曲线的终点和控制点的位置设置为指定的double
坐标。void
setCurve(Point2D[] pts, int offset)
将此QuadCurve2D
的端点和控制点的位置设置为指定数组中指定偏移处的Point2D
对象的坐标。void
setCurve(Point2D p1, Point2D cp, Point2D p2)
将此QuadCurve2D
的终点和控制点的位置设置为指定的Point2D
坐标。void
setCurve(QuadCurve2D c)
将此QuadCurve2D
的终点和控制点的位置设置为与指定的QuadCurve2D
的相同。static int
solveQuadratic(double[] eqn)
eqn
其系数在eqn
数组中的二次方,并将非复数根返回到同一个数组中,返回根数。static int
solveQuadratic(double[] eqn, double[] res)
eqn
其系数在eqn
数组中的二次eqn
,并将非复数根置于res
数组中,返回根数。static void
subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
将由存储在src
数组中的坐标指定的二次曲线细分为索引srcoff
到srcoff
+ 5,并将得到的两条细分曲线存储到相应索引处的两个结果数组中。void
subdivide(QuadCurve2D left, QuadCurve2D right)
细分此QuadCurve2D
并将得到的两条细分曲线存储到left
和right
曲线参数中。static void
subdivide(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
-
-