Class CubicCurve2D.Double

java.lang.Object
java.awt.geom.CubicCurve2D
java.awt.geom.CubicCurve2D.Double
All Implemented Interfaces:
Shape, Serializable, Cloneable
Enclosing class:
CubicCurve2D

public static class CubicCurve2D.Double extends CubicCurve2D implements Serializable
A cubic parametric curve segment specified with double coordinates.
Since:
1.2
See Also:
  • Nested Class Summary

    Nested classes/interfaces declared in class CubicCurve2D

    CubicCurve2D.Double, CubicCurve2D.Float
    Modifier and Type
    Class
    Description
    static class 
    A cubic parametric curve segment specified with double coordinates.
    static class 
    A cubic parametric curve segment specified with float coordinates.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    double
    The X coordinate of the first control point of the cubic curve segment.
    double
    The X coordinate of the second control point of the cubic curve segment.
    double
    The Y coordinate of the first control point of the cubic curve segment.
    double
    The Y coordinate of the second control point of the cubic curve segment.
    double
    The X coordinate of the start point of the cubic curve segment.
    double
    The X coordinate of the end point of the cubic curve segment.
    double
    The Y coordinate of the start point of the cubic curve segment.
    double
    The Y coordinate of the end point of the cubic curve segment.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs and initializes a CubicCurve with coordinates (0, 0, 0, 0, 0, 0, 0, 0).
    Double(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
    Constructs and initializes a CubicCurve2D from the specified double coordinates.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the first control point.
    Returns the second control point.
    double
    Returns the X coordinate of the first control point in double precision.
    double
    Returns the X coordinate of the second control point in double precision.
    double
    Returns the Y coordinate of the first control point in double precision.
    double
    Returns the Y coordinate of the second control point in double precision.
    Returns the start point.
    Returns the end point.
    double
    Returns the X coordinate of the start point in double precision.
    double
    Returns the X coordinate of the end point in double precision.
    double
    Returns the Y coordinate of the start point in double precision.
    double
    Returns the Y coordinate of the end point in double precision.
    void
    setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
    Sets the location of the end points and control points of this curve to the specified double coordinates.

    Methods declared in class CubicCurve2D

    clone, contains, contains, contains, contains, getBounds, getBounds2D, getFlatness, getFlatness, getFlatness, getFlatnessSq, getFlatnessSq, getFlatnessSq, getPathIterator, getPathIterator, intersects, intersects, setCurve, setCurve, setCurve, setCurve, solveCubic, solveCubic, subdivide, subdivide, subdivide
    Modifier and Type
    Method
    Description
    Creates a new object of the same class as this object.
    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
    Tests if a specified Point2D is inside the boundary of the Shape, as described by the definition of insideness.
    boolean
    Tests if the interior of the Shape entirely contains the specified Rectangle2D.
    Returns an integer Rectangle that completely encloses the Shape.
    Returns a high precision and more accurate bounding box of the Shape than the getBounds method.
    double
    Returns the flatness of this curve.
    static double
    getFlatness(double[] coords, int offset)
    Returns the flatness of the cubic curve specified by the control points stored in the indicated array at the indicated index.
    static double
    getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
    Returns the flatness of the cubic curve specified by the indicated control points.
    double
    Returns the square of the flatness of this curve.
    static double
    getFlatnessSq(double[] coords, int offset)
    Returns the square of the flatness of the cubic curve specified by the control points stored in the indicated array at the indicated index.
    static double
    getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
    Returns the square of the flatness of the cubic curve specified by the indicated control points.
    Returns an iteration object that defines the boundary of the shape.
    getPathIterator(AffineTransform at, double flatness)
    Return an iteration object that defines the boundary of the flattened shape.
    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.
    boolean
    Tests if the interior of the Shape intersects the interior of a specified Rectangle2D.
    void
    setCurve(double[] coords, int offset)
    Sets the location of the end points and control points of this curve to the double coordinates at the specified offset in the specified array.
    void
    Sets the location of the end points and control points of this curve to the same as those in the specified CubicCurve2D.
    void
    setCurve(Point2D[] pts, int offset)
    Sets the location of the end points and control points of this curve to the coordinates of the Point2D objects at the specified offset in the specified array.
    void
    setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2)
    Sets the location of the end points and control points of this curve to the specified Point2D coordinates.
    static int
    solveCubic(double[] eqn)
    Solves the cubic whose coefficients are in the eqn array and places the non-complex roots back into the same array, returning the number of roots.
    static int
    solveCubic(double[] eqn, double[] res)
    Solve the cubic whose coefficients are in the eqn array and place the non-complex roots into the res array, returning the number of roots.
    static void
    subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)
    Subdivides the cubic curve specified by the coordinates stored in the src array at indices srcoff through (srcoff + 7) and stores the resulting two subdivided curves into the two result arrays at the corresponding indices.
    void
    Subdivides this cubic curve and stores the resulting two subdivided curves into the left and right curve parameters.
    static void
    Subdivides the cubic curve specified by the src parameter and stores the resulting two subdivided curves into the left and right curve parameters.

    Methods declared in class Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    Modifier and Type
    Method
    Description
    boolean
    Indicates whether some other object is "equal to" this one.
    protected void
    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<?>
    Returns the runtime class of this Object.
    int
    Returns a hash code value for this object.
    final void
    Wakes up a single thread that is waiting on this object's monitor.
    final void
    Wakes up all threads that are waiting on this object's monitor.
    Returns a string representation of the object.
    final void
    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

    • x1

      public double x1
      The X coordinate of the start point of the cubic curve segment.
      Since:
      1.2
    • y1

      public double y1
      The Y coordinate of the start point of the cubic curve segment.
      Since:
      1.2
    • ctrlx1

      public double ctrlx1
      The X coordinate of the first control point of the cubic curve segment.
      Since:
      1.2
    • ctrly1

      public double ctrly1
      The Y coordinate of the first control point of the cubic curve segment.
      Since:
      1.2
    • ctrlx2

      public double ctrlx2
      The X coordinate of the second control point of the cubic curve segment.
      Since:
      1.2
    • ctrly2

      public double ctrly2
      The Y coordinate of the second control point of the cubic curve segment.
      Since:
      1.2
    • x2

      public double x2
      The X coordinate of the end point of the cubic curve segment.
      Since:
      1.2
    • y2

      public double y2
      The Y coordinate of the end point of the cubic curve segment.
      Since:
      1.2
  • Constructor Details

    • Double

      public Double()
      Constructs and initializes a CubicCurve with coordinates (0, 0, 0, 0, 0, 0, 0, 0).
      Since:
      1.2
    • Double

      public Double(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
      Constructs and initializes a CubicCurve2D from the specified double coordinates.
      Parameters:
      x1 - the X coordinate for the start point of the resulting CubicCurve2D
      y1 - the Y coordinate for the start point of the resulting CubicCurve2D
      ctrlx1 - the X coordinate for the first control point of the resulting CubicCurve2D
      ctrly1 - the Y coordinate for the first control point of the resulting CubicCurve2D
      ctrlx2 - the X coordinate for the second control point of the resulting CubicCurve2D
      ctrly2 - the Y coordinate for the second control point of the resulting CubicCurve2D
      x2 - the X coordinate for the end point of the resulting CubicCurve2D
      y2 - the Y coordinate for the end point of the resulting CubicCurve2D
      Since:
      1.2
  • Method Details

    • getX1

      public double getX1()
      Returns the X coordinate of the start point in double precision.
      Specified by:
      getX1 in class CubicCurve2D
      Returns:
      the X coordinate of the start point of the CubicCurve2D.
      Since:
      1.2
    • getY1

      public double getY1()
      Returns the Y coordinate of the start point in double precision.
      Specified by:
      getY1 in class CubicCurve2D
      Returns:
      the Y coordinate of the start point of the CubicCurve2D.
      Since:
      1.2
    • getP1

      public Point2D getP1()
      Returns the start point.
      Specified by:
      getP1 in class CubicCurve2D
      Returns:
      a Point2D that is the start point of the CubicCurve2D.
      Since:
      1.2
    • getCtrlX1

      public double getCtrlX1()
      Returns the X coordinate of the first control point in double precision.
      Specified by:
      getCtrlX1 in class CubicCurve2D
      Returns:
      the X coordinate of the first control point of the CubicCurve2D.
      Since:
      1.2
    • getCtrlY1

      public double getCtrlY1()
      Returns the Y coordinate of the first control point in double precision.
      Specified by:
      getCtrlY1 in class CubicCurve2D
      Returns:
      the Y coordinate of the first control point of the CubicCurve2D.
      Since:
      1.2
    • getCtrlP1

      public Point2D getCtrlP1()
      Returns the first control point.
      Specified by:
      getCtrlP1 in class CubicCurve2D
      Returns:
      a Point2D that is the first control point of the CubicCurve2D.
      Since:
      1.2
    • getCtrlX2

      public double getCtrlX2()
      Returns the X coordinate of the second control point in double precision.
      Specified by:
      getCtrlX2 in class CubicCurve2D
      Returns:
      the X coordinate of the second control point of the CubicCurve2D.
      Since:
      1.2
    • getCtrlY2

      public double getCtrlY2()
      Returns the Y coordinate of the second control point in double precision.
      Specified by:
      getCtrlY2 in class CubicCurve2D
      Returns:
      the Y coordinate of the second control point of the CubicCurve2D.
      Since:
      1.2
    • getCtrlP2

      public Point2D getCtrlP2()
      Returns the second control point.
      Specified by:
      getCtrlP2 in class CubicCurve2D
      Returns:
      a Point2D that is the second control point of the CubicCurve2D.
      Since:
      1.2
    • getX2

      public double getX2()
      Returns the X coordinate of the end point in double precision.
      Specified by:
      getX2 in class CubicCurve2D
      Returns:
      the X coordinate of the end point of the CubicCurve2D.
      Since:
      1.2
    • getY2

      public double getY2()
      Returns the Y coordinate of the end point in double precision.
      Specified by:
      getY2 in class CubicCurve2D
      Returns:
      the Y coordinate of the end point of the CubicCurve2D.
      Since:
      1.2
    • getP2

      public Point2D getP2()
      Returns the end point.
      Specified by:
      getP2 in class CubicCurve2D
      Returns:
      a Point2D that is the end point of the CubicCurve2D.
      Since:
      1.2
    • setCurve

      public void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2)
      Sets the location of the end points and control points of this curve to the specified double coordinates.
      Specified by:
      setCurve in class CubicCurve2D
      Parameters:
      x1 - the X coordinate used to set the start point of this CubicCurve2D
      y1 - the Y coordinate used to set the start point of this CubicCurve2D
      ctrlx1 - the X coordinate used to set the first control point of this CubicCurve2D
      ctrly1 - the Y coordinate used to set the first control point of this CubicCurve2D
      ctrlx2 - the X coordinate used to set the second control point of this CubicCurve2D
      ctrly2 - the Y coordinate used to set the second control point of this CubicCurve2D
      x2 - the X coordinate used to set the end point of this CubicCurve2D
      y2 - the Y coordinate used to set the end point of this CubicCurve2D
      Since:
      1.2