Class CubicCurve2D.Double
java.lang.Object
java.awt.geom.CubicCurve2D
java.awt.geom.CubicCurve2D.Double
- All Implemented Interfaces:
Shape, Serializable, Cloneable
- Enclosing class:
CubicCurve2D
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.FloatModifier and TypeClassDescriptionstatic classA cubic parametric curve segment specified withdoublecoordinates.static classA cubic parametric curve segment specified withfloatcoordinates. -
Field Summary
FieldsModifier and TypeFieldDescriptiondoubleThe X coordinate of the first control point of the cubic curve segment.doubleThe X coordinate of the second control point of the cubic curve segment.doubleThe Y coordinate of the first control point of the cubic curve segment.doubleThe Y coordinate of the second control point of the cubic curve segment.doubleThe X coordinate of the start point of the cubic curve segment.doubleThe X coordinate of the end point of the cubic curve segment.doubleThe Y coordinate of the start point of the cubic curve segment.doubleThe Y coordinate of the end point of the cubic curve segment. -
Constructor Summary
ConstructorsConstructorDescriptionDouble()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 aCubicCurve2Dfrom the specifieddoublecoordinates. -
Method Summary
Modifier and TypeMethodDescriptionReturns the first control point.Returns the second control point.doubleReturns the X coordinate of the first control point in double precision.doubleReturns the X coordinate of the second control point in double precision.doubleReturns the Y coordinate of the first control point in double precision.doubleReturns the Y coordinate of the second control point in double precision.getP1()Returns the start point.getP2()Returns the end point.doublegetX1()Returns the X coordinate of the start point in double precision.doublegetX2()Returns the X coordinate of the end point in double precision.doublegetY1()Returns the Y coordinate of the start point in double precision.doublegetY2()Returns the Y coordinate of the end point in double precision.voidsetCurve(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, subdivideModifier and TypeMethodDescriptionclone()Creates a new object of the same class as this object.booleancontains(double x, double y) Tests if the specified coordinates are inside the boundary of theShape, as described by the definition of insideness.booleancontains(double x, double y, double w, double h) Tests if the interior of theShapeentirely contains the specified rectangular area.booleanTests if a specifiedPoint2Dis inside the boundary of theShape, as described by the definition of insideness.booleanTests if the interior of theShapeentirely contains the specifiedRectangle2D.Returns an integerRectanglethat completely encloses theShape.Returns a high precision and more accurate bounding box of theShapethan thegetBoundsmethod.doubleReturns the flatness of this curve.static doublegetFlatness(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 doublegetFlatness(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.doubleReturns the square of the flatness of this curve.static doublegetFlatnessSq(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 doublegetFlatnessSq(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.booleanintersects(double x, double y, double w, double h) Tests if the interior of theShapeintersects the interior of a specified rectangular area.booleanTests if the interior of theShapeintersects the interior of a specifiedRectangle2D.voidsetCurve(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.voidSets the location of the end points and control points of this curve to the same as those in the specifiedCubicCurve2D.voidSets the location of the end points and control points of this curve to the coordinates of thePoint2Dobjects at the specified offset in the specified array.voidSets the location of the end points and control points of this curve to the specifiedPoint2Dcoordinates.static intsolveCubic(double[] eqn) Solves the cubic whose coefficients are in theeqnarray and places the non-complex roots back into the same array, returning the number of roots.static intsolveCubic(double[] eqn, double[] res) Solve the cubic whose coefficients are in theeqnarray and place the non-complex roots into theresarray, returning the number of roots.static voidsubdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff) Subdivides the cubic curve specified by the coordinates stored in thesrcarray at indicessrcoffthrough (srcoff+ 7) and stores the resulting two subdivided curves into the two result arrays at the corresponding indices.voidsubdivide(CubicCurve2D left, CubicCurve2D right) Subdivides this cubic curve and stores the resulting two subdivided curves into the left and right curve parameters.static voidsubdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right) Subdivides the cubic curve specified by thesrcparameter and stores the resulting two subdivided curves into theleftandrightcurve parameters.Methods declared in class Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionbooleanIndicates whether some other object is "equal to" this one.protected voidfinalize()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 thisObject.inthashCode()Returns a hash code value for this object.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.toString()Returns a string representation of the object.final voidwait()Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final voidwait(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 voidwait(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 x1The X coordinate of the start point of the cubic curve segment.- Since:
- 1.2
-
y1
public double y1The Y coordinate of the start point of the cubic curve segment.- Since:
- 1.2
-
ctrlx1
public double ctrlx1The X coordinate of the first control point of the cubic curve segment.- Since:
- 1.2
-
ctrly1
public double ctrly1The Y coordinate of the first control point of the cubic curve segment.- Since:
- 1.2
-
ctrlx2
public double ctrlx2The X coordinate of the second control point of the cubic curve segment.- Since:
- 1.2
-
ctrly2
public double ctrly2The Y coordinate of the second control point of the cubic curve segment.- Since:
- 1.2
-
x2
public double x2The X coordinate of the end point of the cubic curve segment.- Since:
- 1.2
-
y2
public double y2The 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 aCubicCurve2Dfrom the specifieddoublecoordinates.- Parameters:
x1- the X coordinate for the start point of the resultingCubicCurve2Dy1- the Y coordinate for the start point of the resultingCubicCurve2Dctrlx1- the X coordinate for the first control point of the resultingCubicCurve2Dctrly1- the Y coordinate for the first control point of the resultingCubicCurve2Dctrlx2- the X coordinate for the second control point of the resultingCubicCurve2Dctrly2- the Y coordinate for the second control point of the resultingCubicCurve2Dx2- the X coordinate for the end point of the resultingCubicCurve2Dy2- the Y coordinate for the end point of the resultingCubicCurve2D- Since:
- 1.2
-
-
Method Details
-
getX1
public double getX1()Returns the X coordinate of the start point in double precision.- Specified by:
getX1in classCubicCurve2D- 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:
getY1in classCubicCurve2D- Returns:
- the Y coordinate of the start point of the
CubicCurve2D. - Since:
- 1.2
-
getP1
Returns the start point.- Specified by:
getP1in classCubicCurve2D- Returns:
- a
Point2Dthat is the start point of theCubicCurve2D. - Since:
- 1.2
-
getCtrlX1
public double getCtrlX1()Returns the X coordinate of the first control point in double precision.- Specified by:
getCtrlX1in classCubicCurve2D- 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:
getCtrlY1in classCubicCurve2D- Returns:
- the Y coordinate of the first control point of the
CubicCurve2D. - Since:
- 1.2
-
getCtrlP1
Returns the first control point.- Specified by:
getCtrlP1in classCubicCurve2D- Returns:
- a
Point2Dthat is the first control point of theCubicCurve2D. - Since:
- 1.2
-
getCtrlX2
public double getCtrlX2()Returns the X coordinate of the second control point in double precision.- Specified by:
getCtrlX2in classCubicCurve2D- 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:
getCtrlY2in classCubicCurve2D- Returns:
- the Y coordinate of the second control point of the
CubicCurve2D. - Since:
- 1.2
-
getCtrlP2
Returns the second control point.- Specified by:
getCtrlP2in classCubicCurve2D- Returns:
- a
Point2Dthat is the second control point of theCubicCurve2D. - Since:
- 1.2
-
getX2
public double getX2()Returns the X coordinate of the end point in double precision.- Specified by:
getX2in classCubicCurve2D- 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:
getY2in classCubicCurve2D- Returns:
- the Y coordinate of the end point of the
CubicCurve2D. - Since:
- 1.2
-
getP2
Returns the end point.- Specified by:
getP2in classCubicCurve2D- Returns:
- a
Point2Dthat is the end point of theCubicCurve2D. - 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:
setCurvein classCubicCurve2D- Parameters:
x1- the X coordinate used to set the start point of thisCubicCurve2Dy1- the Y coordinate used to set the start point of thisCubicCurve2Dctrlx1- the X coordinate used to set the first control point of thisCubicCurve2Dctrly1- the Y coordinate used to set the first control point of thisCubicCurve2Dctrlx2- the X coordinate used to set the second control point of thisCubicCurve2Dctrly2- the Y coordinate used to set the second control point of thisCubicCurve2Dx2- the X coordinate used to set the end point of thisCubicCurve2Dy2- the Y coordinate used to set the end point of thisCubicCurve2D- Since:
- 1.2
-