# Class Ellipse2D.Double

java.lang.Object
java.awt.geom.RectangularShape
java.awt.geom.Ellipse2D
java.awt.geom.Ellipse2D.Double

All Implemented Interfaces:
  `Shape, Serializable, Cloneable`

Enclosing class:
  `Ellipse2D`

public static class Ellipse2D.Double extends Ellipse2D implements Serializable
The `Double` class defines an ellipse specified in `double` precision.

Since:
  1.2
See Also:
  - Serialized Form

## Nested Class Summary

### Nested classes/interfaces declared in class Ellipse2D

`Ellipse2D.Double, Ellipse2D.Float`
Modifier and Type
Class
Description
`static class`
`Ellipse2D.Double`
The `Double` class defines an ellipse specified in `double` precision.
`static class`
`Ellipse2D.Float`
The `Float` class defines an ellipse specified in `float` precision.

## Field Summary

Fields
Modifier and Type
Field
Description
`double`
`height`
The overall height of the `Ellipse2D`.
`double`
`width`
The overall width of this `Ellipse2D`.
`double`
`x`
The X coordinate of the upper-left corner of the framing rectangle of this `Ellipse2D`.
`double`
`y`
The Y coordinate of the upper-left corner of the framing rectangle of this `Ellipse2D`.

## Constructor Summary

Constructors
Constructor
Description
`Double()`
Constructs a new `Ellipse2D`, initialized to location (0, 0) and size (0, 0).
`Double(double x, double y, double w, double h)`
Constructs and initializes an `Ellipse2D` from the specified coordinates.

## Method Summary

Modifier and Type
Method
Description
`Rectangle2D`
`getBounds2D()`
Returns a high precision and more accurate bounding box of the `Shape` than the `getBounds` method.
`double`
`getHeight()`
Returns the height of the framing rectangle in `double` precision.
`double`
`getWidth()`
Returns the width of the framing rectangle in `double` precision.
`double`
`getX()`
Returns the X coordinate of the upper-left corner of the framing rectangle in `double` precision.
`double`
`getY()`
Returns the Y coordinate of the upper-left corner of the framing rectangle in `double` precision.
`boolean`
`isEmpty()`
Determines whether the `RectangularShape` is empty.
`void`
`setFrame(double x, double y, double w, double h)`
Sets the location and size of the framing rectangle of this `Shape` to the specified rectangular values.

### Methods declared in class Ellipse2D

`contains, contains, equals, getPathIterator, hashCode, intersects`
Modifier and Type
Method
Description
`boolean`
`contains(double x, double y)`
Tests if the specified coordinates are inside the boundary of the `Shape`, as described by the definition of insideness.
`boolean`
`contains(double x, double y, double w, double h)`
Tests if the interior of the `Shape` entirely contains the specified rectangular area.
`boolean`
`equals(Object obj)`
Determines whether or not the specified `Object` is equal to this `Ellipse2D`.
`PathIterator`
`getPathIterator(AffineTransform at)`
Returns an iteration object that defines the boundary of this `Ellipse2D`.
`int`
`hashCode()`
Returns the hashcode for this `Ellipse2D`.
`boolean`
`intersects(double x, double y, double w, double h)`
Tests if the interior of the `Shape` intersects the interior of a specified rectangular area.

### Methods declared in class RectangularShape

`clone, contains, contains, getBounds, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, getPathIterator, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal`
Modifier and Type
Method
Description
`Object`
`clone()`
Creates a new object of the same class and with the same contents as this object.
`boolean`
`contains(Point2D p)`
Tests if a specified `Point2D` is inside the boundary of the `Shape`, as described by the definition of insideness.
`boolean`
`contains(Rectangle2D r)`
Tests if the interior of the `Shape` entirely contains the specified `Rectangle2D`.
`Rectangle`
`getBounds()`
Returns an integer `Rectangle` that completely encloses the `Shape`.
`double`
`getCenterX()`
Returns the X coordinate of the center of the framing rectangle of the `Shape` in `double` precision.
`double`
`getCenterY()`
Returns the Y coordinate of the center of the framing rectangle of the `Shape` in `double` precision.
`Rectangle2D`
`getFrame()`
Returns the framing `Rectangle2D` that defines the overall shape of this object.
`double`
`getMaxX()`
Returns the largest X coordinate of the framing rectangle of the `Shape` in `double` precision.
`double`
`getMaxY()`
Returns the largest Y coordinate of the framing rectangle of the `Shape` in `double` precision.
`double`
`getMinX()`
Returns the smallest X coordinate of the framing rectangle of the `Shape` in `double` precision.
`double`
`getMinY()`
Returns the smallest Y coordinate of the framing rectangle of the `Shape` in `double` precision.
`PathIterator`
`getPathIterator(AffineTransform at, double flatness)`
Returns an iterator object that iterates along the `Shape` object's boundary and provides access to a flattened view of the outline of the `Shape` object's geometry.
`boolean`
`intersects(Rectangle2D r)`
Tests if the interior of the `Shape` intersects the interior of a specified `Rectangle2D`.
`void`
`setFrame(Point2D loc, Dimension2D size)`
Sets the location and size of the framing rectangle of this `Shape` to the specified `Point2D` and `Dimension2D`, respectively.
`void`
`setFrame(Rectangle2D r)`
Sets the framing rectangle of this `Shape` to be the specified `Rectangle2D`.
`void`
`setFrameFromCenter(double centerX, double centerY, double cornerX, double cornerY)`
Sets the framing rectangle of this `Shape` based on the specified center point coordinates and corner point coordinates.
`void`
`setFrameFromCenter(Point2D center, Point2D corner)`
Sets the framing rectangle of this `Shape` based on a specified center `Point2D` and corner `Point2D`.
`void`
`setFrameFromDiagonal(double x1, double y1, double x2, double y2)`
Sets the diagonal of the framing rectangle of this `Shape` based on the two specified coordinates.
`void`
`setFrameFromDiagonal(Point2D p1, Point2D p2)`
Sets the diagonal of the framing rectangle of this `Shape` based on two specified `Point2D` objects.

### Methods declared in class Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Field Details

### x

public double x
The X coordinate of the upper-left corner of the framing rectangle of this `Ellipse2D`.

Since:
  1.2

### y

public double y
The Y coordinate of the upper-left corner of the framing rectangle of this `Ellipse2D`.

Since:
  1.2

### width

public double width
The overall width of this `Ellipse2D`.

Since:
  1.2

### height

public double height
The overall height of the `Ellipse2D`.

Since:
  1.2

## Constructor Details

### Double

public Double()
Constructs a new `Ellipse2D`, initialized to location (0, 0) and size (0, 0).

Since:
  1.2

### Double

public Double(double x, double y, double w, double h)
Constructs and initializes an `Ellipse2D` from the specified coordinates.

Parameters:
  `x` - the X coordinate of the upper-left corner of the framing rectangle
  `y` - the Y coordinate of the upper-left corner of the framing rectangle
  `w` - the width of the framing rectangle
  `h` - the height of the framing rectangle
Since:
  1.2

## Method Details

### getX

public double getX()
Returns the X coordinate of the upper-left corner of the framing rectangle in `double` precision.

Specified by:
  `getX` in class `RectangularShape`
Returns:
  the X coordinate of the upper-left corner of the framing rectangle.
Since:
  1.2

### getY

public double getY()
Returns the Y coordinate of the upper-left corner of the framing rectangle in `double` precision.

Specified by:
  `getY` in class `RectangularShape`
Returns:
  the Y coordinate of the upper-left corner of the framing rectangle.
Since:
  1.2

### getWidth

public double getWidth()
Returns the width of the framing rectangle in `double` precision.

Specified by:
  `getWidth` in class `RectangularShape`
Returns:
  the width of the framing rectangle.
Since:
  1.2

### getHeight

public double getHeight()
Returns the height of the framing rectangle in `double` precision.

Specified by:
  `getHeight` in class `RectangularShape`
Returns:
  the height of the framing rectangle.
Since:
  1.2

### isEmpty

public boolean isEmpty()
Determines whether the `RectangularShape` is empty. When the `RectangularShape` is empty, it encloses no area.

Specified by:
  `isEmpty` in class `RectangularShape`
Returns:
  `true` if the `RectangularShape` is empty; `false` otherwise.
Since:
  1.2

### setFrame

public void setFrame(double x, double y, double w, double h)
Sets the location and size of the framing rectangle of this `Shape` to the specified rectangular values.

Specified by:
  `setFrame` in class `RectangularShape`
Parameters:
  `x` - the X coordinate of the upper-left corner of the specified rectangular shape
  `y` - the Y coordinate of the upper-left corner of the specified rectangular shape
  `w` - the width of the specified rectangular shape
  `h` - the height of the specified rectangular shape
Since:
  1.2
See Also:
  - `RectangularShape.getFrame()`

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