模块 java.desktop

类 Path2D

java.lang.Object
java.awt.geom.Path2D
所有已实现的接口:
Shape , Cloneable
已知子类:
Path2D.Double , Path2D.Float

public abstract sealed class Path2D extends Object implements Shape , Cloneable permits Path2D.Double , Path2D.Float
Path2D 类提供了一个简单而灵活的形状,代表任意几何路径。它可以完全表示可以由PathIterator 接口迭代的任何路径,包括它的所有段类型和缠绕规则,并且它实现了Shape 接口的所有基本命中测试方法。

在处理可以用浮点精度表示和使用的数据时使用 Path2D.Float Path2D.Double 用于需要双精度精度或范围的数据。

Path2D 提供了几何路径的基本构造和管理以及上述接口的实现所需的那些设施,几乎没有添加解释。如果在简单的命中测试之外操纵封闭几何形状的内部很有用,那么 Area 类会提供专门针对封闭图形的额外功能。虽然这两个类名义上都实现了 Shape 接口,但它们的目的不同,它们一起提供了两个有用的几何形状视图,其中 Path2D 主要处理由路径段形成的轨迹,而 Area 更多地处理 2D 几何空间的封闭区域的解释和操作.

PathIterator 接口对构成路径的段类型和控制如何确定哪些区域在路径内部或外部的缠绕规则有更详细的描述。

密封类层次结构图:
Sealed class hierarchy graph for Path2DSealed class hierarchy graph for Path2D
自从:
1.6
  • 内部类总结

    内部类
    修饰符和类型
    描述
    static class 
    Double 类定义了一个几何路径,其坐标存储在双精度浮点数中。
    static class 
    Float 类定义了一个几何路径,其坐标存储在单精度浮点数中。
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final int
    用于确定路径内部的奇偶缠绕规则。
    static final int
    用于确定路径内部的非零缠绕规则。
  • 方法总结

    修饰符和类型
    方法
    描述
    abstract void
    append(PathIterator pi, boolean connect)
    将指定 PathIterator 对象的几何图形附加到路径,可能将新几何图形连接到具有线段的现有路径段。
    final void
    append(Shape s, boolean connect)
    将指定的 Shape 对象的几何附加到路径,可能将新几何连接到具有线段的现有路径段。
    abstract Object
    创建一个与此对象属于同一类的新对象。
    final void
    通过绘制一条直线回到最后一个 moveTo 的坐标来关闭当前子路径。
    final boolean
    contains(double x, double y)
    测试指定坐标是否在 Shape 的边界内,如 definition of insideness 所述。
    final boolean
    contains(double x, double y, double w, double h)
    测试 Shape 的内部是否完全包含指定的矩形区域。
    static boolean
    contains(PathIterator pi, double x, double y)
    测试指定坐标是否在指定 PathIterator 的封闭边界内。
    static boolean
    contains(PathIterator pi, double x, double y, double w, double h)
    测试指定的矩形区域是否完全在指定的 PathIterator 的封闭边界内。
    static boolean
    测试指定的 Point2D 是否在指定的 PathIterator 的封闭边界内。
    static boolean
    测试指定的 Rectangle2D 是否完全在指定的 PathIterator 的封闭边界内。
    final boolean
    测试指定的 Point2D 是否在 Shape 的边界内,如 definition of insideness 所述。
    final boolean
    测试 Shape 的内部是否完全包含指定的 Rectangle2D
    final Shape
    返回一个新的 Shape 表示这个 Path2D 的转换版本。
    abstract void
    curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
    通过绘制与当前坐标和指定坐标 (x3,y3) 相交的贝塞尔曲线,使用指定点 (x1,y1)(x2,y2) 作为贝塞尔控制点,将由三个新点定义的曲线段添加到路径。
    final Rectangle
    返回一个整数 Rectangle 完全包围 Shape
    final Point2D
    返回最近添加到路径末尾的坐标作为 Point2D 对象。
    getPathIterator(AffineTransform at, double flatness)
    返回一个迭代器对象,该对象沿 Shape 边界迭代并提供对 Shape 轮廓几何图形的展平视图的访问。
    final int
    返回填充样式缠绕规则。
    final boolean
    intersects(double x, double y, double w, double h)
    测试 Shape 的内部是否与指定矩形区域的内部相交。
    static boolean
    intersects(PathIterator pi, double x, double y, double w, double h)
    测试指定 PathIterator 的内部是否与指定的一组直角坐标的内部相交。
    static boolean
    测试指定 PathIterator 的内部是否与指定 Rectangle2D 的内部相交。
    final boolean
    测试 Shape 的内部是否与指定的 Rectangle2D 的内部相交。
    abstract void
    lineTo(double x, double y)
    通过从当前坐标到以双精度指定的新指定坐标绘制一条直线,向路径添加一个点。
    abstract void
    moveTo(double x, double y)
    通过移动到以双精度指定的指定坐标向路径添加一个点。
    abstract void
    quadTo(double x1, double y1, double x2, double y2)
    通过使用指定点 (x1,y1) 作为二次参数控制点绘制与当前坐标和指定坐标 (x2,y2) 相交的二次曲线,将由两个新点定义的曲线段添加到路径。
    final void
    将路径重置为空。
    final void
    setWindingRule(int rule)
    将此路径的缠绕规则设置为指定值。
    abstract void
    使用指定的 AffineTransform 转换此路径的几何形状。
    abstract void
    将此 Path2D 实例的容量修剪为其当前大小。

    在类 java.lang.Object 中声明的方法

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    在接口 java.awt.Shape 中声明的方法

    getBounds2D, getPathIterator
  • 字段详细信息

  • 方法详情

    • moveTo

      public abstract void moveTo(double x, double y)
      通过移动到以双精度指定的指定坐标向路径添加一个点。
      参数:
      x - 指定的X坐标
      y - 指定的Y坐标
      自从:
      1.6
    • lineTo

      public abstract void lineTo(double x, double y)
      通过从当前坐标到以双精度指定的新指定坐标绘制一条直线,向路径添加一个点。
      参数:
      x - 指定的X坐标
      y - 指定的Y坐标
      自从:
      1.6
    • quadTo

      public abstract void quadTo(double x1, double y1, double x2, double y2)
      通过使用指定点 (x1,y1) 作为二次参数控制点绘制与当前坐标和指定坐标 (x2,y2) 相交的二次曲线,将由两个新点定义的曲线段添加到路径。所有坐标均以双精度指定。
      参数:
      x1 - 二次控制点的 X 坐标
      y1 - 二次控制点的Y坐标
      x2 - 最终终点的X坐标
      y2 - 最终终点的Y坐标
      自从:
      1.6
    • curveTo

      public abstract void curveTo(double x1, double y1, double x2, double y2, double x3, double y3)
      通过绘制与当前坐标和指定坐标 (x3,y3) 相交的贝塞尔曲线,使用指定点 (x1,y1)(x2,y2) 作为贝塞尔控制点,将由三个新点定义的曲线段添加到路径。所有坐标均以双精度指定。
      参数:
      x1 - 第一个贝塞尔控制点的 X 坐标
      y1 - 第一个贝塞尔控制点的 Y 坐标
      x2 - 第二个贝塞尔控制点的 X 坐标
      y2 - 第二个贝塞尔控制点的Y坐标
      x3 - 最终终点的X坐标
      y3 - 最终终点的Y坐标
      自从:
      1.6
    • closePath

      public final void closePath()
      通过绘制一条直线回到最后一个 moveTo 的坐标来关闭当前子路径。如果路径已经关闭,则此方法无效。
      自从:
      1.6
    • append

      public final void append(Shape  s, boolean connect)
      将指定的 Shape 对象的几何附加到路径,可能将新几何连接到具有线段的现有路径段。如果 connect 参数是 true 并且路径不为空,则附加的 Shape 几何中的任何初始 moveTo 将变成 lineTo 段。如果此类连接lineTo 段的目标坐标与当前打开的子路径的结束坐标匹配,则该段将被忽略为多余的。忽略指定 Shape 的缠绕规则,附加的几何形状受为此路径指定的缠绕规则约束。
      参数:
      s - 其几何附加到此路径的 Shape
      connect - 一个boolean,用于控制是否将初始 moveTo 段转换为 lineTo 段以将新几何图形连接到现有路径
      自从:
      1.6
    • append

      public abstract void append(PathIterator  pi, boolean connect)
      将指定 PathIterator 对象的几何图形附加到路径,可能将新几何图形连接到具有线段的现有路径段。如果 connect 参数是 true 并且路径不为空,则附加的 Shape 几何中的任何初始 moveTo 将变成 lineTo 段。如果此类连接lineTo 段的目标坐标与当前打开的子路径的结束坐标匹配,则该段将被忽略为多余的。忽略指定 Shape 的缠绕规则,附加的几何形状受为此路径指定的缠绕规则约束。
      参数:
      pi - PathIterator 其几何附加到此路径
      connect - 一个boolean,用于控制是否将初始 moveTo 段转换为 lineTo 段以将新几何图形连接到现有路径
      自从:
      1.6
    • getWindingRule

      public final int getWindingRule()
      返回填充样式缠绕规则。
      返回:
      一个整数,表示当前绕组规则。
      自从:
      1.6
      参见:
    • setWindingRule

      public final void setWindingRule(int rule)
      将此路径的缠绕规则设置为指定值。
      参数:
      rule - 表示指定缠绕规则的整数
      抛出:
      IllegalArgumentException - 如果 rule 既不是 WIND_EVEN_ODD 也不是 WIND_NON_ZERO
      自从:
      1.6
      参见:
    • getCurrentPoint

      public final Point2D  getCurrentPoint()
      返回最近添加到路径末尾的坐标作为 Point2D 对象。
      返回:
      包含路径结束坐标的 Point2D 对象,如果路径中没有点,则为 null
      自从:
      1.6
    • reset

      public final void reset()
      将路径重置为空。附加位置设置回路径的开头,所有坐标和点类型都被遗忘。
      自从:
      1.6
    • transform

      public abstract void transform(AffineTransform  at)
      使用指定的 AffineTransform 转换此路径的几何形状。几何图形就地变换,这会永久更改此对象定义的边界。
      参数:
      at - 用于转换区域的 AffineTransform
      自从:
      1.6
    • createTransformedShape

      public final Shape  createTransformedShape(AffineTransform  at)
      返回一个新的 Shape 表示这个 Path2D 的转换版本。请注意,此方法未指定返回值的确切类型和坐标精度。该方法将返回一个 Shape ,其中包含的转换几何精度不低于此 Path2D 当前维护的精度,但它也可能不包含更高的精度。如果结果中精度与存储大小的权衡很重要,则应使用 Path2D.Float Path2D.Double 子类中的便利构造函数来明确选择。
      参数:
      at - AffineTransform 用于转换新的 Shape
      返回:
      一个新的 Shape ,用指定的 AffineTransform 转换。
      自从:
      1.6
    • getBounds

      public final Rectangle  getBounds()
      返回一个整数 Rectangle 完全包围 Shape 。请注意,不能保证返回的 Rectangle 是包围 Shape 的最小边界框,只能保证 Shape 完全位于指示的 Rectangle 内。如果 Shape 溢出整数数据类型的有限范围,则返回的 Rectangle 也可能无法完全包围 ShapegetBounds2D 方法通常会返回更紧密的边界框,因为它在表示方掩码有更大的灵活性。

      请注意,definition of insideness 可能导致 shape 定义轮廓上的点可能不被视为包含在返回的 bounds 对象中,但仅在这些点也不被视为包含在原始 shape 中的情况下。

      如果根据 contains(point) 方法 pointshape 内部,那么根据 boundscontains(point) 方法,它必须在返回的 Rectangle 边界对象内部。具体来说:

      shape.contains(x,y) 需要 bounds.contains(x,y)

      如果 point 不在 shape 内,那么它可能仍包含在 bounds 对象中:

      bounds.contains(x,y) 并不意味着 shape.contains(x,y)

      指定者:
      getBounds 在接口 Shape
      返回:
      一个整数 Rectangle 完全包含 Shape
      自从:
      1.6
      参见:
    • contains

      public static boolean contains(PathIterator  pi, double x, double y)
      测试指定坐标是否在指定 PathIterator 的封闭边界内。

      此方法为 Shape 接口的实现者提供了一个基本工具来实现对 Shape.contains(double, double) 方法的支持。

      参数:
      pi - 指定的 PathIterator
      x - 指定的X坐标
      y - 指定的Y坐标
      返回:
      true 如果指定的坐标在指定的 PathIterator 内; false否则
      自从:
      1.6
    • contains

      public static boolean contains(PathIterator  pi, Point2D  p)
      测试指定的 Point2D 是否在指定的 PathIterator 的封闭边界内。

      此方法为 Shape 接口的实现者提供了一个基本工具来实现对 Shape.contains(Point2D) 方法的支持。

      参数:
      pi - 指定的 PathIterator
      p - 指定的 Point2D
      返回:
      true 如果指定的坐标在指定的 PathIterator 内; false否则
      自从:
      1.6
    • contains

      public final boolean contains(double x, double y)
      测试指定坐标是否在 Shape 的边界内,如 definition of insideness 所述。
      指定者:
      contains 在接口 Shape
      参数:
      x - 指定要测试的X坐标
      y - 指定待测Y坐标
      返回:
      true 如果指定坐标在 Shape 边界内; false否则。
      自从:
      1.6
    • contains

      public final boolean contains(Point2D  p)
      测试指定的 Point2D 是否在 Shape 的边界内,如 definition of insideness 所述。
      指定者:
      contains 在接口 Shape
      参数:
      p - 要测试的指定 Point2D
      返回:
      true 如果指定的 Point2DShape 的边界内; false否则。
      自从:
      1.6
    • contains

      public static boolean contains(PathIterator  pi, double x, double y, double w, double h)
      测试指定的矩形区域是否完全在指定的 PathIterator 的封闭边界内。

      此方法为 Shape 接口的实现者提供了一个基本设施,以实现对 Shape.contains(double, double, double, double) 方法的支持。

      如果指定的矩形区域与路径的一段相交,但该段不代表路径内部和外部之间的边界,则此方法对象可能会保守地返回 false。如果这些线段是具有 WIND_NON_ZERO 缠绕规则的路径的一部分,或者如果这些线段在相反方向上回溯使得两组线段相互抵消而没有任何外部区域落在它们之间,则这些线段可能完全位于路径内部他们。确定段是否代表路径内部的真实边界需要大量计算,涉及路径的所有段和缠绕规则,因此超出了本实施的范围。

      参数:
      pi - 指定的 PathIterator
      x - 指定的X坐标
      y - 指定的Y坐标
      w - 指定矩形区域的宽度
      h - 指定矩形区域的高度
      返回:
      true如果指定的PathIterator包含指定的矩形区域; false否则。
      自从:
      1.6
    • contains

      public static boolean contains(PathIterator  pi, Rectangle2D  r)
      测试指定的 Rectangle2D 是否完全在指定的 PathIterator 的封闭边界内。

      此方法为 Shape 接口的实现者提供了一个基本工具来实现对 Shape.contains(Rectangle2D) 方法的支持。

      如果指定的矩形区域与路径的一段相交,但该段不代表路径内部和外部之间的边界,则此方法对象可能会保守地返回 false。如果这些线段是具有 WIND_NON_ZERO 缠绕规则的路径的一部分,或者如果这些线段在相反方向上回溯使得两组线段相互抵消而没有任何外部区域落在它们之间,则这些线段可能完全位于路径内部他们。确定段是否代表路径内部的真实边界需要大量计算,涉及路径的所有段和缠绕规则,因此超出了本实施的范围。

      参数:
      pi - 指定的 PathIterator
      r - 一个指定的 Rectangle2D
      返回:
      true 如果指定的 PathIterator 包含指定的 Rectangle2Dfalse否则。
      自从:
      1.6
    • contains

      public final boolean contains(double x, double y, double w, double h)
      测试 Shape 的内部是否完全包含指定的矩形区域。位于矩形区域内的所有坐标必须位于 Shape 内,因为整个矩形区域都被视为包含在 Shape 内。

      Shape.contains() 方法允许 Shape 实现在以下情况下保守地返回 false

      • intersect 方法返回 true
      • 确定 Shape 是否完全包含矩形区域的计算非常昂贵。
      这意味着对于某些 Shapes 此方法可能返回 false 即使 Shape 包含矩形区域。 Area 类执行比大多数 Shape 对象更精确的几何计算,因此可以在需要更精确的答案时使用。

      如果指定的矩形区域与路径的一段相交,但该段不代表路径内部和外部之间的边界,则此方法对象可能会保守地返回 false。如果这些线段是具有 WIND_NON_ZERO 缠绕规则的路径的一部分,或者如果这些线段在相反方向上回溯使得两组线段相互抵消而没有任何外部区域落在它们之间,则这些线段可能完全位于路径内部他们。确定段是否代表路径内部的真实边界需要大量计算,涉及路径的所有段和缠绕规则,因此超出了本实施的范围。

      指定者:
      contains 在接口 Shape
      参数:
      x - 指定矩形区域左上角的X坐标
      y - 指定矩形区域左上角的Y坐标
      w - 指定矩形区域的宽度
      h - 指定矩形区域的高度
      返回:
      true 如果 Shape 的内部完全包含指定的矩形区域; false 否则,或者,如果 Shape 包含矩形区域并且 intersects 方法返回 true 并且包含计算将过于昂贵而无法执行。
      自从:
      1.6
      参见:
    • contains

      public final boolean contains(Rectangle2D  r)
      测试 Shape 的内部是否完全包含指定的 Rectangle2DShape.contains() 方法允许 Shape 实现在以下情况下保守地返回 false
      • intersect 方法返回 true
      • 确定 Shape 是否完全包含 Rectangle2D 的计算非常昂贵。
      这意味着对于某些 Shapes 此方法可能返回 false 即使 Shape 包含 Rectangle2DArea 类执行比大多数 Shape 对象更精确的几何计算,因此可以在需要更精确的答案时使用。

      如果指定的矩形区域与路径的一段相交,但该段不代表路径内部和外部之间的边界,则此方法对象可能会保守地返回 false。如果这些线段是具有 WIND_NON_ZERO 缠绕规则的路径的一部分,或者如果这些线段在相反方向上回溯使得两组线段相互抵消而没有任何外部区域落在它们之间,则这些线段可能完全位于路径内部他们。确定段是否代表路径内部的真实边界需要大量计算,涉及路径的所有段和缠绕规则,因此超出了本实施的范围。

      指定者:
      contains 在接口 Shape
      参数:
      r - 指定的 Rectangle2D
      返回:
      true 如果 Shape 的内部完全包含 Rectangle2Dfalse 否则,或者,如果 Shape 包含 Rectangle2D 并且 intersects 方法返回 true 并且包含计算的执行成本太高。
      自从:
      1.6
      参见:
    • intersects

      public static boolean intersects(PathIterator  pi, double x, double y, double w, double h)
      测试指定 PathIterator 的内部是否与指定的一组直角坐标的内部相交。

      此方法为 Shape 接口的实现者提供了一个基本设施,以实现对 Shape.intersects(double, double, double, double) 方法的支持。

      如果指定的矩形区域与路径的一段相交,但该段不代表路径内部和外部之间的边界,则此方法对象可能会保守地返回 true。如果路径的某些段组在相反方向上回溯使得这两组段相互抵消而它们之间没有任何内部区域,则可能发生这种情况。确定段是否代表路径内部的真实边界需要大量计算,涉及路径的所有段和缠绕规则,因此超出了本实现的范围。

      参数:
      pi - 指定的 PathIterator
      x - 指定的X坐标
      y - 指定的Y坐标
      w - 指定直角坐标的宽度
      h - 指定直角坐标的高度
      返回:
      true 如果指定的 PathIterator 和指定的直角坐标集的内部相互相交; false否则。
      自从:
      1.6
    • intersects

      public static boolean intersects(PathIterator  pi, Rectangle2D  r)
      测试指定 PathIterator 的内部是否与指定 Rectangle2D 的内部相交。

      此方法为 Shape 接口的实现者提供了一个基本设施,以实现对 Shape.intersects(Rectangle2D) 方法的支持。

      如果指定的矩形区域与路径的一段相交,但该段不代表路径内部和外部之间的边界,则此方法对象可能会保守地返回 true。如果路径的某些段组在相反方向上回溯使得这两组段相互抵消而它们之间没有任何内部区域,则可能发生这种情况。确定段是否代表路径内部的真实边界需要大量计算,涉及路径的所有段和缠绕规则,因此超出了本实现的范围。

      参数:
      pi - 指定的 PathIterator
      r - 指定的 Rectangle2D
      返回:
      true 如果指定的 PathIterator 和指定的 Rectangle2D 的内部相互相交; false否则。
      自从:
      1.6
    • intersects

      public final boolean intersects(double x, double y, double w, double h)
      测试 Shape 的内部是否与指定矩形区域的内部相交。如果Shape 和指定矩形区域的内部都包含任何点,则认为矩形区域与Shape 相交。

      Shape.intersects() 方法允许 Shape 实现在以下情况下保守地返回 true

      • 矩形区域和Shape相交的概率很高,但是
      • 准确确定该交叉点的计算非常昂贵。
      这意味着对于某些 Shapes 此方法可能返回 true 即使矩形区域不与 Shape 相交。 Area 类执行比大多数 Shape 对象更准确的几何交集计算,因此如果需要更精确的答案可以使用。

      如果指定的矩形区域与路径的一段相交,但该段不代表路径内部和外部之间的边界,则此方法对象可能会保守地返回 true。如果路径的某些段组在相反方向上回溯使得这两组段相互抵消而它们之间没有任何内部区域,则可能发生这种情况。确定段是否代表路径内部的真实边界需要大量计算,涉及路径的所有段和缠绕规则,因此超出了本实现的范围。

      指定者:
      intersects 在接口 Shape
      参数:
      x - 指定矩形区域左上角的X坐标
      y - 指定矩形区域左上角的Y坐标
      w - 指定矩形区域的宽度
      h - 指定矩形区域的高度
      返回:
      true 如果 Shape 的内部与矩形区域的内部相交,或者两者极有可能相交,并且相交计算的执行成本太高; false否则。
      自从:
      1.6
      参见:
    • intersects

      public final boolean intersects(Rectangle2D  r)
      测试 Shape 的内部是否与指定的 Rectangle2D 的内部相交。 Shape.intersects() 方法允许 Shape 实现在以下情况下保守地返回 true
      • Rectangle2DShape 相交的可能性很高,但是
      • 准确确定该交叉点的计算非常昂贵。
      这意味着对于某些 Shapes 此方法可能返回 true 即使 Rectangle2D 不与 Shape 相交。 Area 类执行比大多数 Shape 对象更准确的几何交集计算,因此如果需要更精确的答案可以使用。

      如果指定的矩形区域与路径的一段相交,但该段不代表路径内部和外部之间的边界,则此方法对象可能会保守地返回 true。如果路径的某些段组在相反方向上回溯使得这两组段相互抵消而它们之间没有任何内部区域,则可能发生这种情况。确定段是否代表路径内部的真实边界需要大量计算,涉及路径的所有段和缠绕规则,因此超出了本实现的范围。

      指定者:
      intersects 在接口 Shape
      参数:
      r - 指定的 Rectangle2D
      返回:
      true 如果 Shape 的内部与指定的 Rectangle2D 的内部相交,或者两者极有可能相交,并且相交计算的执行成本太高; false否则。
      自从:
      1.6
      参见:
    • getPathIterator

      public final PathIterator  getPathIterator(AffineTransform  at, double flatness)
      返回一个迭代器对象,该对象沿 Shape 边界迭代并提供对 Shape 轮廓几何图形的展平视图的访问。

      迭代器仅返回 SEG_MOVETO、SEG_LINETO 和 SEG_CLOSE 点类型。

      如果指定了可选的 AffineTransform,则迭代中返回的坐标会相应地进行转换。

      曲线段的细组件由 flatness 参数控制,该参数指定未展平变换曲线上的任何点可以偏离返回的展平路径段的最大距离。请注意,可能会悄悄地对展平路径的精度施加限制,从而导致非常小的展平参数被视为较大的值。此限制(如果有的话)由所使用的特定实现定义。

      每次调用此方法都会返回一个新的 PathIterator 对象,该对象独立于同时使用的任何其他 PathIterator 对象遍历 Shape 对象几何。

      建议但不保证,实现 Shape 接口的对象将正在进行的迭代与此类迭代期间原始对象的几何形状可能发生的任何更改隔离开来。

      此类的迭代器不是多线程安全的,这意味着此 Path2D 类不保证对此 Path2D 对象的几何图形的修改不会影响已经在处理中的该几何图形的任何迭代。

      指定者:
      getPathIterator 在接口 Shape
      参数:
      at - 一个可选的 AffineTransform 应用于在迭代中返回的坐标,或者 null 如果需要未转换的坐标
      flatness - 用于逼近曲线段的线段允许偏离原始曲线上任意点的最大距离
      返回:
      一个新的 PathIterator 独立地遍历 Shape 的几何图形的平面视图。
      自从:
      1.6
    • clone

      public abstract Object  clone()
      创建一个与此对象属于同一类的新对象。
      重写:
      clone 在类 Object
      返回:
      此实例的克隆。
      抛出:
      OutOfMemoryError - 如果内存不足。
      自从:
      1.6
      参见:
    • trimToSize

      public abstract void trimToSize()
      将此 Path2D 实例的容量修剪为其当前大小。应用程序可以使用此操作来最小化路径的存储。
      自从:
      10