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, wait
getBounds2D
protected 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
和intersect
Shape
完全包含矩形区域是昂贵的计算。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
和intersect
Shape
完全包含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.