public static class Path2D.Float extends Path2D implements Serializable
Float
类定义了一个几何路径,坐标存储在单精度浮点中。
Path2D.Double, Path2D.Float
WIND_EVEN_ODD, WIND_NON_ZERO
Constructor and Description |
---|
Float()
构造一个新的空单精度
Path2D 对象,默认绕组规则为
Path2D.WIND_NON_ZERO 。
|
Float(int rule)
使用指定的绕组规则构造一个新的空单精度
Path2D 对象,以控制需要定义路径内部的操作。
|
Float(int rule, int initialCapacity)
构造一个新的空单精度
Path2D 对象,具有指定的绕组规则和指定的初始容量以存储路径段。
|
Float(Shape s)
构造一个新的单精度 Path2D 从任意对象Shape 对象。
|
Float(Shape s, AffineTransform at)
从任意的 Shape 对象构造一个新的单精度Path2D 对象,由AffineTransform 对象转换。
|
Modifier and Type | Method and Description |
---|---|
void |
append(PathIterator pi, boolean connect)
将指定的 PathIterator 对象的几何体附加到路径,可能将新几何体连接到具有线段的现有路径段。
|
Object |
clone()
创建与此对象相同类的新对象。
|
void |
curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
通过绘制与当前坐标和指定坐标(x3,y3)
(x3,y3) Bézier曲线,使用指定点
(x1,y1) 和
(x2,y2) 作为Bézier控制点,将一个由三个新点定义的曲线段添加到路径。
|
void |
curveTo(float x1, float y1, float x2, float y2, float x3, float y3)
通过绘制与当前坐标和指定坐标(x3,y3)
(x3,y3) Bézier曲线,使用指定点
(x1,y1) 和
(x2,y2) 作为Bézier控制点,将一个由三个新点定义的曲线段添加到路径。
|
Rectangle2D |
getBounds2D()
Shape的
Shape 比
getBounds 方法更高精度和更准确的边界框。
|
PathIterator |
getPathIterator(AffineTransform at)
返回沿着
Shape 边界进行迭代的迭代器对象,并提供对
Shape 轮廓几何的访问。
|
void |
lineTo(double x, double y)
通过从当前坐标绘制直线到双精度指定的新指定坐标,向路径添加点。
|
void |
lineTo(float x, float y)
通过从当前坐标绘制直线到浮点精度指定的新指定坐标,向路径添加点。
|
void |
moveTo(double x, double y)
通过移动到以双精度指定的指定坐标添加点到路径。
|
void |
moveTo(float x, float y)
通过移动到以float精度指定的指定坐标,向路径添加点。
|
void |
quadTo(double x1, double y1, double x2, double y2)
通过绘制与当前坐标和指定坐标(x2,y2)
(x2,y2) ,使用指定点
(x1,y1) 作为二次参数控制点,将一个由两个新点定义的曲线段添加到路径。
|
void |
quadTo(float x1, float y1, float x2, float y2)
通过绘制与当前坐标和指定坐标(x2,y2)
(x2,y2) ,使用指定点
(x1,y1) 作为二次参数控制点,将一个由两个新点定义的曲线段添加到路径。
|
void |
transform(AffineTransform at)
使用指定的 AffineTransform 转换此路径的几何。
|
append, closePath, contains, contains, contains, contains, contains, contains, contains, contains, createTransformedShape, getBounds, getCurrentPoint, getPathIterator, getWindingRule, intersects, intersects, intersects, intersects, reset, setWindingRule
public Float()
Path2D
对象,默认绕组规则为
Path2D.WIND_NON_ZERO
。
public Float(int rule)
Path2D
对象,以控制需要定义路径内部的操作。
rule
- 绕线规则
Path2D.WIND_EVEN_ODD
,
Path2D.WIND_NON_ZERO
public Float(int rule, int initialCapacity)
Path2D
对象,具有指定的绕组规则和指定的初始容量以存储路径段。
这个数字是关于将多少路径段添加到路径的初步猜测,但根据需要扩展存储,以存储添加的任何路径段。
rule
- 绕线规则
initialCapacity
- 路径中路径段数量的估计
Path2D.WIND_EVEN_ODD
,
Path2D.WIND_NON_ZERO
public Float(Shape s)
Path2D
从任意对象Shape
对象。
该路径的所有初始几何和绕组规则均取自指定的Shape
对象。
s
- 指定的
Shape
对象
public Float(Shape s, AffineTransform at)
Shape
对象构造一个新的单精度Path2D
对象,由AffineTransform
对象转换。
此路径的所有初始几何和绕组规则均取自指定的Shape
对象,并由指定的AffineTransform
对象进行转换。
s
- 指定的
Shape
对象
at
- 指定的
AffineTransform
对象
public final void moveTo(double x, double y)
public final void moveTo(float x, float y)
该方法提供了基于Path2D
类的双精度moveTo()
方法的单精度变量。
x
- 指定的X坐标
y
- 指定的Y坐标
Path2D.moveTo(double, double)
public final void lineTo(double x, double y)
public final void lineTo(float x, float y)
该方法提供了基于Path2D
类的双精度lineTo()
方法的单精度变量。
x
- 指定的X坐标
y
- 指定的Y坐标
Path2D.lineTo(double, double)
public final void quadTo(double x1, double y1, double x2, double y2)
(x2,y2)
,使用指定点(x1,y1)
作为二次参数控制点,将一个由两个新点定义的曲线段添加到路径。
所有坐标均以双精度指定。
public final void quadTo(float x1, float y1, float x2, float y2)
(x2,y2)
,使用指定点(x1,y1)
作为二次参数控制点,将一个由两个新点定义的曲线段添加到路径。
所有坐标均以浮动精度指定。
该方法提供了基于Path2D
类的双精度quadTo()
方法的单精度变量。
x1
- 二次控制点的X坐标
y1
- 二次控制点的Y坐标
x2
- 最终终点的X坐标
y2
- 最终终点的Y坐标
Path2D.quadTo(double, double, double, double)
public final void curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
(x1,y1)
和(x2,y2)
作为Bézier控制点(x1,y1)
与当前坐标和指定坐标(x3,y3) (x3,y3)
Bézier曲线,将一个由三个新点定义的曲线段添加到路径。
所有坐标均以双精度指定。
public final void curveTo(float x1, float y1, float x2, float y2, float x3, float y3)
(x1,y1)
和(x2,y2)
作为Bézier控制点(x1,y1)
与当前坐标和指定坐标(x3,y3) (x3,y3)
Bézier曲线,将一个由三个新点定义的曲线段添加到路径。
所有坐标均以浮动精度指定。
该方法提供了基于Path2D
类的双精度curveTo()
方法的单精度变量。
x1
- 第一个Bézier控制点的X坐标
y1
- 第一个Bézier控制点的Y坐标
x2
- 第二个Bézier控制点的X坐标
y2
- 第二个Bézier控制点的Y坐标
x3
- 最终终点的X坐标
y3
- 最终终点的Y坐标
Path2D.curveTo(double, double, double, double, double, double)
public final void append(PathIterator pi, boolean connect)
PathIterator
对象的几何附加到路径,可能将新几何体连接到具有线段的现有路径段。
如果connect
参数是true
,并且路径不为空,则附加的Shape
的几何中的任何初始的moveTo
变成lineTo
段。
如果这种连接lineTo
段的目标坐标与当前打开的子路径的结束坐标匹配,那么该段被省略为多余的。
指定的卷绕规则Shape
被忽略,并且在所附的几何形状由该路径所指定的缠绕规则支配。
public final void transform(AffineTransform at)
AffineTransform
转换此路径的几何。
几何体被转换到位,永久地改变由该对象定义的边界。
public final Rectangle2D getBounds2D()
Shape
比getBounds
方法更高精度和更准确的边界框。
需要注意的是没有保证返回Rectangle2D
是最小的边框包围Shape
,只表示Shape
完全在指定的范围内Rectangle2D
。
通过此方法返回的边界框通常比通过返回的更紧密getBounds
方法,而且永远不会因为溢出问题,因为返回值可以是实例Rectangle2D
一个使用双精度值存储尺寸。
请注意, definition of insideness可能会导致在返回的bounds
对象中不能将shape定义大纲上的shape
纳入考虑的情况,但只有在原始shape
中也未考虑这些点的情况下。
如果一个point
是在shape
内,根据contains(point)
方法,那么它必须在返回的Rectangle2D
边界内的对象根据contains(point)
方法的bounds
。 特别:
shape.contains(p)
要求bounds.contains(p)
如果point
不在shape
,那么它可能仍然包含在bounds
对象中:
bounds.contains(p)
并不表示shape.contains(p)
getBounds2D
在界面
Shape
Rectangle2D
那是一个高精度边界框
Shape
。
Shape.getBounds()
public final PathIterator getPathIterator(AffineTransform at)
Shape
边界进行迭代,并提供对Shape
大纲的几何形状的访问。
如果指定了可选的AffineTransform
,则相应地转换迭代中返回的坐标。
每次调用此方法将返回一个新的PathIterator
对象,该对象可以独立于同时使用的任何其他PathIterator
对象Shape
对象的几何。
建议但不能保证,实现Shape
接口的对象会隔离正在进行的迭代,这些迭代可能是在这种迭代期间原始对象的几何可能发生的任何更改。
该类的迭代器不是多线程安全的,这意味着Path2D
类不保证对此Path2D
对象的几何的Path2D
不会影响已经在处理的该几何的任何迭代。
getPathIterator
在界面
Shape
at
- 要在迭代中返回时应用于
at
的可选
AffineTransform
,如果需要未转换的
null
,则为null
PathIterator
对象,它独立地遍历的几何形状
Shape
。
public final Object clone()
clone
在类别
Path2D
OutOfMemoryError
- 如果没有足够的内存
Cloneable