Module java.desktop
Package java.awt.geom

## Class QuadCurve2D.Double

- java.lang.Object
- - java.awt.geom.QuadCurve2D
  - - java.awt.geom.QuadCurve2D.Double

- All Implemented Interfaces:
    `Shape`, `Serializable`, `Cloneable`
  Enclosing class:
    QuadCurve2D

      public static class QuadCurve2D.Double
      extends QuadCurve2D
      implements Serializable

  A quadratic parametric curve segment specified with `double` coordinates.
  Since:
    1.2
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class java.awt.geom.QuadCurve2D

      `QuadCurve2D.Double, QuadCurve2D.Float`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `double` | `ctrlx` | The X coordinate of the control point of the quadratic curve segment.
    `double` | `ctrly` | The Y coordinate of the control point of the quadratic curve segment.
    `double` | `x1` | The X coordinate of the start point of the quadratic curve segment.
    `double` | `x2` | The X coordinate of the end point of the quadratic curve segment.
    `double` | `y1` | The Y coordinate of the start point of the quadratic curve segment.
    `double` | `y2` | The Y coordinate of the end point of the quadratic curve segment.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Double​()` | Constructs and initializes a `QuadCurve2D` with coordinates (0, 0, 0, 0, 0, 0).
    `Double​(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)` | Constructs and initializes a `QuadCurve2D` from the specified `double` coordinates.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Rectangle2D` | `getBounds2D​()` | Returns a high precision and more accurate bounding box of the `Shape` than the `getBounds` method.
    `Point2D` | `getCtrlPt​()` | Returns the control point.
    `double` | `getCtrlX​()` | Returns the X coordinate of the control point in `double` precision.
    `double` | `getCtrlY​()` | Returns the Y coordinate of the control point in `double` precision.
    `Point2D` | `getP1​()` | Returns the start point.
    `Point2D` | `getP2​()` | Returns the end point.
    `double` | `getX1​()` | Returns the X coordinate of the start point in `double` in precision.
    `double` | `getX2​()` | Returns the X coordinate of the end point in `double` precision.
    `double` | `getY1​()` | Returns the Y coordinate of the start point in `double` precision.
    `double` | `getY2​()` | Returns the Y coordinate of the end point in `double` precision.
    `void` | `setCurve​(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)` | Sets the location of the end points and control point of this curve to the specified `double` coordinates.

    - ### Methods inherited from class java.lang.Object

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

    - ### Methods inherited from class java.awt.geom.QuadCurve2D

      `clone, contains, contains, contains, contains, getBounds, getFlatness, getFlatness, getFlatness, getFlatnessSq, getFlatnessSq, getFlatnessSq, getPathIterator, getPathIterator, intersects, intersects, setCurve, setCurve, setCurve, setCurve, solveQuadratic, solveQuadratic, subdivide, subdivide, subdivide`

- - ### Field Detail

    - #### x1

          public double x1

      The X coordinate of the start point of the quadratic curve segment.
      Since:
        1.2

    - #### y1

          public double y1

      The Y coordinate of the start point of the quadratic curve segment.
      Since:
        1.2

    - #### ctrlx

          public double ctrlx

      The X coordinate of the control point of the quadratic curve segment.
      Since:
        1.2

    - #### ctrly

          public double ctrly

      The Y coordinate of the control point of the quadratic curve segment.
      Since:
        1.2

    - #### x2

          public double x2

      The X coordinate of the end point of the quadratic curve segment.
      Since:
        1.2

    - #### y2

          public double y2

      The Y coordinate of the end point of the quadratic curve segment.
      Since:
        1.2

  - ### Constructor Detail

    - #### Double

          public Double​()

      Constructs and initializes a `QuadCurve2D` with coordinates (0, 0, 0, 0, 0, 0).
      Since:
        1.2

    - #### Double

          public Double​(double x1,
                        double y1,
                        double ctrlx,
                        double ctrly,
                        double x2,
                        double y2)

      Constructs and initializes a `QuadCurve2D` from the specified `double` coordinates.
      Parameters:
        `x1` - the X coordinate of the start point
        `y1` - the Y coordinate of the start point
        `ctrlx` - the X coordinate of the control point
        `ctrly` - the Y coordinate of the control point
        `x2` - the X coordinate of the end point
        `y2` - the Y coordinate of the end point
      Since:
        1.2

  - ### Method Detail

    - #### getX1

          public double getX1​()

      Returns the X coordinate of the start point in `double` in precision.
      Specified by:
        `getX1` in class `QuadCurve2D`
      Returns:
        the X coordinate of the start point.
      Since:
        1.2

    - #### getY1

          public double getY1​()

      Returns the Y coordinate of the start point in `double` precision.
      Specified by:
        `getY1` in class `QuadCurve2D`
      Returns:
        the Y coordinate of the start point.
      Since:
        1.2

    - #### getP1

          public Point2D getP1​()

      Returns the start point.
      Specified by:
        `getP1` in class `QuadCurve2D`
      Returns:
        a `Point2D` that is the start point of this `QuadCurve2D`.
      Since:
        1.2

    - #### getCtrlX

          public double getCtrlX​()

      Returns the X coordinate of the control point in `double` precision.
      Specified by:
        `getCtrlX` in class `QuadCurve2D`
      Returns:
        X coordinate the control point
      Since:
        1.2

    - #### getCtrlY

          public double getCtrlY​()

      Returns the Y coordinate of the control point in `double` precision.
      Specified by:
        `getCtrlY` in class `QuadCurve2D`
      Returns:
        the Y coordinate of the control point.
      Since:
        1.2

    - #### getCtrlPt

          public Point2D getCtrlPt​()

      Returns the control point.
      Specified by:
        `getCtrlPt` in class `QuadCurve2D`
      Returns:
        a `Point2D` that is the control point of this `Point2D`.
      Since:
        1.2

    - #### getX2

          public double getX2​()

      Returns the X coordinate of the end point in `double` precision.
      Specified by:
        `getX2` in class `QuadCurve2D`
      Returns:
        the x coordinate of the end point.
      Since:
        1.2

    - #### getY2

          public double getY2​()

      Returns the Y coordinate of the end point in `double` precision.
      Specified by:
        `getY2` in class `QuadCurve2D`
      Returns:
        the Y coordinate of the end point.
      Since:
        1.2

    - #### getP2

          public Point2D getP2​()

      Returns the end point.
      Specified by:
        `getP2` in class `QuadCurve2D`
      Returns:
        a `Point` object that is the end point of this `Point2D`.
      Since:
        1.2

    - #### setCurve

          public void setCurve​(double x1,
                               double y1,
                               double ctrlx,
                               double ctrly,
                               double x2,
                               double y2)

      Sets the location of the end points and control point of this curve to the specified `double` coordinates.
      Specified by:
        `setCurve` in class `QuadCurve2D`
      Parameters:
        `x1` - the X coordinate of the start point
        `y1` - the Y coordinate of the start point
        `ctrlx` - the X coordinate of the control point
        `ctrly` - the Y coordinate of the control point
        `x2` - the X coordinate of the end point
        `y2` - the Y coordinate of the end point
      Since:
        1.2

    - #### getBounds2D

          public Rectangle2D getBounds2D​()

      Returns a high precision and more accurate bounding box of the `Shape` than the `getBounds` method. Note that there is no guarantee that the returned `Rectangle2D` is the smallest bounding box that encloses the `Shape`, only that the `Shape` lies entirely within the indicated `Rectangle2D`. The bounding box returned by this method is usually tighter than that returned by the `getBounds` method and never fails due to overflow problems since the return value can be an instance of the `Rectangle2D` that uses double precision values to store the dimensions.

      Note that the definition of insideness can lead to situations where points on the defining outline of the `shape` may not be considered contained in the returned `bounds` object, but only in cases where those points are also not considered contained in the original `shape`.

      If a `point` is inside the `shape` according to the `contains(point)` method, then it must be inside the returned `Rectangle2D` bounds object according to the `contains(point)` method of the `bounds`. Specifically:

      `shape.contains(p)` requires `bounds.contains(p)`

      If a `point` is not inside the `shape`, then it might still be contained in the `bounds` object:

      `bounds.contains(p)` does not imply `shape.contains(p)`

      Specified by:
        `getBounds2D` in interface `Shape`
      Returns:
        an instance of `Rectangle2D` that is a high-precision bounding box of the `Shape`.
      Since:
        1.2
      See Also:
        `Shape.getBounds()`