Module java.desktop
Package java.awt.geom

Class Path2D.Double

java.lang.Object
java.awt.geom.Path2D
java.awt.geom.Path2D.Double
所有已实现的接口:
Shape, Serializable, Cloneable
封装类:
Path2D

public static non-sealed class Path2D.Double extends Path2D implements Serializable
Double类定义了一个使用双精度浮点数存储坐标的几何路径。
自从:
1.6
另请参阅:
  • Constructor Details

    • Double

      public Double()
      用默认的绕组规则Path2D.WIND_NON_ZERO构造一个新的空双精度Path2D对象。
      自从:
      1.6
    • Double

      public Double(int rule)
      用指定的绕组规则构造一个新的空双精度Path2D对象,以控制需要定义路径内部的操作。
      参数:
      rule - 绕组规则
      抛出:
      IllegalArgumentException - 如果rule既不是Path2D.WIND_EVEN_ODD也不是Path2D.WIND_NON_ZERO
      自从:
      1.6
      另请参阅:
    • Double

      public Double(int rule, int initialCapacity)
      用指定的绕组规则和指定的初始容量构造一个新的空双精度Path2D对象。此数字是对路径中有多少路径段的初始猜测,但根据需要扩展存储以存储添加到此路径的任何路径段。
      参数:
      rule - 绕组规则
      initialCapacity - 路径中路径段数量的估计值
      抛出:
      IllegalArgumentException - 如果rule既不是Path2D.WIND_EVEN_ODD也不是Path2D.WIND_NON_ZERO
      NegativeArraySizeException - 如果initialCapacity为负
      自从:
      1.6
      另请参阅:
    • Double

      public Double(Shape s)
      从任意Shape对象构造一个新的双精度Path2D对象。此路径的所有初始几何和绕组规则都来自指定的Shape对象。
      参数:
      s - 指定的Shape对象
      抛出:
      NullPointerException - 如果snull
      自从:
      1.6
    • Double

      public Double(Shape s, AffineTransform at)
      从任意Shape对象构造一个新的双精度Path2D对象,通过AffineTransform对象进行变换。此路径的所有初始几何和绕组规则都来自指定的Shape对象,并由指定的AffineTransform对象进行变换。
      参数:
      s - 指定的Shape对象
      at - 指定的AffineTransform对象
      抛出:
      NullPointerException - 如果snull
      自从:
      1.6
  • Method Details

    • trimToSize

      public final void trimToSize()
      从类中复制的描述: Path2D
      将此Path2D实例的容量修剪到其当前大小。应用程序可以使用此操作来最小化路径的存储。
      指定者:
      trimToSize 在类 Path2D
    • moveTo

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

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

      public final void quadTo(double x1, double y1, double x2, double y2)
      通过绘制一个二次曲线,该曲线与当前坐标和指定坐标(x2,y2)相交,使用指定点(x1,y1)作为二次参数控制点,向路径添加一个曲线段。所有坐标均以双精度指定。
      指定者:
      quadTo 在类 Path2D
      参数:
      x1 - 二次控制点的X坐标
      y1 - 二次控制点的Y坐标
      x2 - 最终端点的X坐标
      y2 - 最终端点的Y坐标
      自从:
      1.6
    • curveTo

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

      public final void append(PathIterator pi, boolean connect)
      将指定的PathIterator对象的几何形状附加到路径中,可能使用线段将新几何形状连接到现有路径段。如果connect参数为true且路径不为空,则附加的Shape的几何形状中的任何初始moveTo都会转换为lineTo段。如果这样一个连接的lineTo段的目标坐标与当前打开子路径的结束坐标匹配,则该段将被省略为多余的。忽略指定Shape的绕组规则,附加的几何形状由为此路径指定的绕组规则控制。
      指定者:
      append 在类 Path2D
      参数:
      pi - 要附加到此路径的PathIterator
      connect - 一个布尔值,用于控制是否将初始moveTo段转换为lineTo段以连接新几何形状到现有路径
      自从:
      1.6
    • transform

      public final void transform(AffineTransform at)
      使用指定的AffineTransform转换此路径的几何形状。几何形状在原地转换,永久更改了由此对象定义的边界。
      指定者:
      transform 在类 Path2D
      参数:
      at - 用于转换区域的AffineTransform
      自从:
      1.6
    • getBounds2D

      public final Rectangle2D getBounds2D()
      返回Shape的高精度和更准确的边界框,比getBounds方法更紧凑。请注意,不能保证返回的Rectangle2D是包围Shape的最小边界框,只能保证Shape完全位于指示的Rectangle2D内。此方法返回的边界框通常比getBounds方法返回的边界框更紧凑,并且永远不会因为溢出问题而失败,因为返回值可以是使用双精度值存储尺寸的Rectangle2D的实例。

      请注意,内部定义的定义可能导致在shape的定义轮廓上的点可能不被认为包含在返回的bounds对象中,但只有在这些点也不被认为包含在原始shape中的情况下才是如此。

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

      shape.contains(p)要求bounds.contains(p)

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

      bounds.contains(p)不意味着shape.contains(p)

      指定者:
      getBounds2D 在接口 Shape
      返回:
      一个Shape的高精度边界框的实例。
      自从:
      1.6
      参见:
    • getPathIterator

      public final PathIterator getPathIterator(AffineTransform at)
      返回一个迭代器对象,沿着Shape的边界迭代,并提供对Shape轮廓的几何形状的访问。如果指定了可选的AffineTransform,则迭代中返回的坐标将相应地进行转换。

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

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

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

      指定者:
      getPathIterator 在接口 Shape
      参数:
      at - 一个AffineTransform
      返回:
      一个新的PathIterator,沿着此Shape的边界迭代,并提供对此Shape轮廓的几何形状的访问
      自从:
      1.6
    • clone

      public final Object clone()
      创建与此对象相同类的新对象。
      指定者:
      clone 在类 Path2D
      返回:
      此实例的克隆。
      抛出:
      OutOfMemoryError - 如果内存不足。
      自从:
      1.6
      参见: