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 declared in class java.awt.geom.QuadCurve2D

`QuadCurve2D.Double, QuadCurve2D.Float`

### Field Summary

Fields
`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
`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
`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 declared in 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`

### Methods declared in class java.lang.Object

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

### 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()`