public abstract class QuadCurve2D extends Object implements Shape, Cloneable
QuadCurve2D类
(x,y)坐标空间中定义了一个二次参数曲线段。
这类是所有对象的二维曲线段存储的抽象类。坐标的实际存储表示形式留给子类。
| Modifier and Type | Class and Description |
|---|---|
static class |
QuadCurve2D.Double
二次参数曲线段指定
double坐标。
|
static class |
QuadCurve2D.Float
二次参数曲线段指定
float坐标。
|
| Modifier | Constructor and Description |
|---|---|
protected |
QuadCurve2D()
这是一个抽象类不能被直接实例化。
|
| Modifier and Type | Method and Description |
|---|---|
Object |
clone()
创建同一个类的新对象,并具有与此对象相同的内容。
|
boolean |
contains(double x, double y)
如果指定的坐标的
Shape边界内,由
definition of insideness描述。
|
boolean |
contains(double x, double y, double w, double h)
如果
Shape测试的内部完全包含指定的矩形区域。
|
boolean |
contains(Point2D p)
|
boolean |
contains(Rectangle2D r)
如果
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边界。
|
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阵列和场所的非复杂的根回到同一个数组,返回根数。
|
static int |
solveQuadratic(double[] eqn, double[] res)
解决二次的系数在
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曲线参数。
|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetBounds2Dprotected QuadCurve2D()
QuadCurve2D.Float,
QuadCurve2D.Double
public abstract double getX1()
double起始点的X坐标。
public abstract double getY1()
double精度出发点的Y坐标。
public abstract Point2D getP1()
Point2D是这个
QuadCurve2D起点。
public abstract double getCtrlX()
double精度控制点的X坐标。
public abstract double getCtrlY()
double精度控制点的Y坐标。
public abstract Point2D getCtrlPt()
Point2D是这个
Point2D控制点。
public abstract double getX2()
double精密的结束点的X坐标。
public abstract double getY2()
double精度的结束点的Y坐标。
public abstract Point2D getP2()
Point对象,这
Point2D终点。
public abstract void setCurve(double x1,
double y1,
double ctrlx,
double ctrly,
double x2,
double y2)
double控制点的位置坐标。
x1 -起始点的x坐标
y1 -出发点的Y坐标
ctrlx -控制点的x坐标
ctrly -控制点的Y坐标
x2 -结束点的X坐标
y2 -结束点的Y坐标
public void setCurve(double[] coords,
int offset)
QuadCurve2D的
double点坐标在指定指定数组中的偏移量。
coords含坐标值的数组
offset -指数为从开始的坐标值的数组,将他们分配到这
QuadCurve2D
public void setCurve(Point2D p1, Point2D cp, Point2D p2)
QuadCurve2D到指定的
Point2D控制点的位置坐标。
p1 -起点
cp -控制点
p2 -终点
public void setCurve(Point2D[] pts, int offset)
QuadCurve2D的
Point2D对象的坐标点。
pts -一个数组包含
Point2D定义坐标值
offset -指数为
pts从开始的坐标值,并将它们分配给这
QuadCurve2D
public void setCurve(QuadCurve2D c)
QuadCurve2D到同一个控制点的位置设置为在指定的
QuadCurve2D。
c -指定
QuadCurve2D
public static double getFlatnessSq(double x1,
double y1,
double ctrlx,
double ctrly,
double x2,
double y2)
x1 -起始点的x坐标
y1 -出发点的Y坐标
ctrlx -控制点的x坐标
ctrly -控制点的Y坐标
x2 -结束点的X坐标
y2 -结束点的Y坐标
public static double getFlatness(double x1,
double y1,
double ctrlx,
double ctrly,
double x2,
double y2)
x1 -起始点的x坐标
y1 -出发点的Y坐标
ctrlx -控制点的x坐标
ctrly -控制点的Y坐标
x2 -结束点的X坐标
y2 -结束点的Y坐标
public static double getFlatnessSq(double[] coords,
int offset)
coords -一个数组包含坐标值
offset -指数为
coords由此开始从阵列得到的值
public static double getFlatness(double[] coords,
int offset)
coords -一个数组包含坐标值
offset -指数为
coords从开始的坐标值
public double getFlatnessSq()
QuadCurve2D。
QuadCurve2D平坦的广场。
public double getFlatness()
QuadCurve2D。
QuadCurve2D平整。
public void subdivide(QuadCurve2D left, QuadCurve2D right)
QuadCurve2D和存储造成两细分曲线进入
left和
right曲线参数。该
left和
right对象或可作为这
QuadCurve2D或
null相同。
left -存储左或细分曲线上半年
QuadCurve2D对象
right -存储正确的细分曲线或下半年
QuadCurve2D对象
public static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)
src参数指定的二次曲线和存储造成两细分曲线进入
left和
right曲线参数。该
left和
right对象或可作为
src对象或
null相同。
src -分二次曲线
left -存储左或细分曲线上半年
QuadCurve2D对象
right -存储正确的细分曲线或下半年
QuadCurve2D对象
public static void subdivide(double[] src,
int srcoff,
double[] left,
int leftoff,
double[] right,
int rightoff)
srcoff细分指标通过
srcoff + 5
src数组的坐标指定的二次曲线和存储造成两细分曲线分成两结果数组的相应指标。该
left和
right阵列或可
null或引用同一阵列和偏移的
src阵列。请注意,第一次细分曲线的最后一点与第二次细分曲线的第一点是相同的。因此,有可能通过相同的阵列
left和
right和使用偏移,
rightoff等于
leftoff + 4为了避免这一共同点分配额外的存储。
src的数组保存的坐标曲线的来源
srcoff坐标
left -用于存储的细分曲线上半年坐标数组
leftoff -偏移量在6左右开始的数组的坐标
right -用于存储的细分曲线下半年坐标数组
rightoff -偏移量在6年初对坐标数组
public static int solveQuadratic(double[] eqn)
eqn阵列和场所的非复杂的根回到同一个数组,返回根数。二次求解的方程表示:
eqn = {一} C,B;AX ^ 2 + bx + c = 0一
-1返回值是用来区分一个常数方程,可总是0不0,从方程无零。
eqn -包含二次系数阵
-1如果方程是一个常数
public static int solveQuadratic(double[] eqn,
double[] res)
eqn阵列和场所的非复杂的根在
res数组,返回根数。二次求解的方程表示:
eqn = {一} C,B;AX ^ 2 + bx + c = 0一
-1返回值是用来区分一个常数方程,可总是0不0,从方程无零。
eqn -指定数组系数来解决二次方程
res -包含非复杂根源于二次方程的解产生的阵列
-1如果方程是一个常数。
public boolean contains(double x,
double y)
Shape边界内,由
definition of insideness描述。
public boolean contains(Point2D p)
public boolean intersects(double x,
double y,
double w,
double h)
Shape测试的内部与一个指定的矩形区域内。矩形区域是相交的
Shape如果任何点是否包含在内部的
Shape和指定的矩形区域。
的Shape.intersects()方法允许Shape实施保守的回报true时:
Shape相交,但Shapes这个方法可能返回
true即使矩形区域不相交的
Shape。的
Area类执行更精确的计算几何相交比大多数
Shape对象,因此可以更准确的答案是需要用。
intersects 接口
Shape
x -指定的矩形区域左上角的x坐标
y -指定的矩形区域的左上角的Y坐标
w -指定的矩形区域的宽度
h -指定矩形区域的高度
true如果的
Shape内部与矩形区域内相交,或是相交,相交计算高度可能会执行
false否则太贵。
Area
public boolean intersects(Rectangle2D r)
Shape测试的内部与指定的
Rectangle2D内部,
Shape.intersects()方法允许
Shape实施保守的回报
true时:
Rectangle2D和Shape相交,但Shapes这个方法可能返回
true即使
Rectangle2D不相交的
Shape。的
Area类执行更精确的计算几何相交比大多数
Shape对象,因此可以更准确的答案是需要用。
intersects 接口
Shape
r -指定
Rectangle2D
true如果的
Shape内部和指定的
Rectangle2D内部相交,或是相交,相交计算高度可能会执行
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时:
true和intersectShape完全包含矩形区域是昂贵的计算。Shapes这个方法可能返回
false即使
Shape包含矩形区域。的
Area类执行更精确的几何计算比大多数
Shape对象,因此可以更准确的答案是需要用。
contains 接口
Shape
x -指定的矩形区域左上角的x坐标
y -指定的矩形区域的左上角的Y坐标
w -指定的矩形区域的宽度
h -指定矩形区域的高度
true如果的
Shape内部完全包含指定矩形区域;
false否则,如果
Shape包含矩形面积和
intersects方法返回
true和遏制的计算是执行太贵。
Area,
Shape.intersects(double, double, double, double)
public boolean contains(Rectangle2D r)
Shape测试的内部完全包含指定的
Rectangle2D。的
Shape.contains()方法允许
Shape实施保守的回报
false时:
true和intersectShape完全包含Rectangle2D是昂贵的计算。Shapes这个方法可能返回
false即使
Shape包含
Rectangle2D。的
Area类执行更精确的几何计算比大多数
Shape对象,因此可以更准确的答案是需要用。
contains 接口
Shape
r -指定
Rectangle2D
true如果的
Shape内部完全包含
false
Rectangle2D;否则,如果
Shape包含
Rectangle2D和
intersects方法返回
true和遏制的计算是执行太贵。
Shape.contains(double, double, double, double)
public Rectangle getBounds()
Rectangle完全封闭
Shape。需要注意的是不能保证返回的
Rectangle是最小包围盒包围
Shape,只有
Shape完全在于在显示
Rectangle。返回的
Rectangle也未能完全封闭
Shape如果
Shape溢出整数数据类型的范围。的
getBounds2D方法一般返回一个紧密的包围盒由于在表示其更大的灵活性。
请注意, definition of insideness可导致的情况下,点上的shape定义轮廓可能不被视为包含在返回的bounds对象,但只有在这些点的情况下,也不被认为是包含在原始的shape。
如果一个point在shape根据contains(point)方法,那么它必须在返回的Rectangle界根据的bounds的contains(point)方法对象。明确地:
shape.contains(x,y)需要bounds.contains(x,y)
如果一个point是不是在shape,那么它可能仍然包含在bounds对象:
bounds.contains(x,y)并不意味着shape.contains(x,y)
getBounds 接口
Shape
Rectangle完全封闭
Shape。
Shape.getBounds2D()
public PathIterator getPathIterator(AffineTransform at)
QuadCurve2D形状的边界。这类迭代器不是线程安全的,这意味着这
QuadCurve2D类不保证本
QuadCurve2D修改对象的几何不影响任何迭代几何已经在过程。
getPathIterator 接口
Shape
at可选
AffineTransform适用于形状的边界
PathIterator定义形状的边界。
public PathIterator getPathIterator(AffineTransform at, double flatness)
QuadCurve2D边界。这类迭代器不是线程安全的,这意味着这
QuadCurve2D类不保证本
QuadCurve2D修改对象的几何不影响任何迭代几何已经在过程。
getPathIterator 接口
Shape
at可选
AffineTransform适用于形状的边界
flatness -这一细分曲线的控制点可以相对于连接这条曲线的终点线之前,这条曲线是由一条直线连接的终结点替换的最大距离。
PathIterator定义边界的扁平形状。
public Object clone()
clone 方法重写,继承类
Object
OutOfMemoryError -如果没有足够的内存。
Cloneable
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.