|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||

java.lang.Objectmath.geom2d.curve.AbstractContinuousCurve2D
math.geom2d.curve.AbstractSmoothCurve2D
math.geom2d.spline.CubicBezierCurve2D
public class CubicBezierCurve2D
A cubic bezier curve, defined by 4 points. From javaGeom 0.8.0, this shape does not extends java.awt.geom.CubicCurve2D.Double anymore
| Field Summary | |
|---|---|
protected double |
ctrlx1
|
protected double |
ctrlx2
|
protected double |
ctrly1
|
protected double |
ctrly2
|
protected double |
x1
|
protected double |
x2
|
protected double |
y1
|
protected double |
y2
|
| Fields inherited from interface math.geom2d.Shape2D |
|---|
ACCURACY |
| Constructor Summary | |
|---|---|
CubicBezierCurve2D()
|
|
CubicBezierCurve2D(double[][] coefs)
Build a new Bezier curve from its array of coefficients. |
|
CubicBezierCurve2D(double x1,
double y1,
double xctrl1,
double yctrl1,
double xctrl2,
double yctrl2,
double x2,
double y2)
Build a new Bezier curve of degree 3 by specifying position of extreme points and position of 2 control points. |
|
CubicBezierCurve2D(Point2D p1,
Point2D ctrl1,
Point2D ctrl2,
Point2D p2)
Build a new Bezier curve of degree 3 by specifying position of extreme points and position of 2 control points. |
|
CubicBezierCurve2D(Point2D p1,
Vector2D v1,
Point2D p2,
Vector2D v2)
Build a new Bezier curve of degree 3 by specifying position and tangent of first and last points. |
|
| Method Summary | |
|---|---|
GeneralPath |
appendPath(GeneralPath path)
Append the path of the curve to the given path. |
CurveSet2D<? extends CubicBezierCurve2D> |
clip(Box2D box)
Clip the Bezier curve by a box. |
CubicBezierCurve2D |
clone()
Overrides Object declaration to ensure Curve2D implementation are cloned as Curve2D. |
boolean |
contains(double x,
double y)
Checks if the shape contains the planar point defined by (x,y). |
boolean |
contains(Point2D p)
Checks if the shape contains the given point. |
static CubicBezierCurve2D |
create(Point2D p1,
Point2D c1,
Point2D c2,
Point2D p2)
|
static CubicBezierCurve2D |
create(Point2D p1,
Vector2D v1,
Point2D p2,
Vector2D v2)
|
boolean |
equals(Object obj)
|
Box2D |
getBoundingBox()
Returns the bounding box of the shape. |
Point2D |
getControl1()
|
Point2D |
getControl2()
|
Point2D |
getCtrlP1()
|
Point2D |
getCtrlP2()
|
double |
getCurvature(double t)
returns the curvature of the Curve. |
double |
getDistance(double x,
double y)
Compute approximated distance, computed on a polyline. |
double |
getDistance(Point2D p)
get the distance of the shape to the given point, or the distance of point to the frontier of the shape in the case of a plain shape. |
Point2D |
getFirstPoint()
Returns the first point of the curve. |
GeneralPath |
getGeneralPath()
|
Collection<Point2D> |
getIntersections(LinearShape2D line)
Use approximation, by replacing Bezier curve with a polyline. |
Point2D |
getLastPoint()
Returns the last point of the curve. |
Point2D |
getP1()
|
Point2D |
getP2()
|
double[][] |
getParametric()
Returns the matrix of parametric representation of the line. |
Point2D |
getPoint(double t)
Gets the point from a parametric representation of the curve. |
double |
getPosition(Point2D point)
Computes position by approximating cubic spline with a polyline. |
CubicBezierCurve2D |
getReverseCurve()
Returns the Bezier curve given by control points taken in reverse order. |
double |
getSignedDistance(double x,
double y)
The same as getSignedDistance(Point2D), but by passing 2 double as arguments. |
double |
getSignedDistance(Point2D point)
Get the signed distance of the curve to the given point: this distance is positive if the point lies outside the shape, and is negative if the point lies inside the shape. |
CubicBezierCurve2D |
getSubCurve(double t0,
double t1)
Computes portion of BezierCurve. |
double |
getT0()
returns 0, as Bezier curve is parameterized between 0 and 1. |
double |
getT1()
Returns 1, as Bezier curve is parameterized between 0 and 1. |
Vector2D |
getTangent(double t)
|
double |
getWindingAngle(Point2D point)
Use winding angle of approximated polyline |
boolean |
isBounded()
Returns true, a cubic Bezier Curve is always bounded. |
boolean |
isClosed()
The cubic curve is never closed. |
boolean |
isEmpty()
Returns true if the shape does not contain any point. |
boolean |
isInside(Point2D pt)
return true if the point is 'inside' the domain bounded by the curve. |
double |
project(Point2D point)
Computes position by approximating cubic spline with a polyline. |
CubicBezierCurve2D |
transform(AffineTransform2D trans)
Returns the Bezier Curve transformed by the given AffineTransform2D. |
| Methods inherited from class math.geom2d.curve.AbstractSmoothCurve2D |
|---|
getLeftTangent, getRightTangent, getSingularPoints, getSmoothPieces, isSingular |
| Methods inherited from class math.geom2d.curve.AbstractContinuousCurve2D |
|---|
draw, getAsAWTShape, getAsPolyline, getContinuousCurves, wrapCurve |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface math.geom2d.curve.ContinuousCurve2D |
|---|
getAsPolyline, getLeftTangent, getRightTangent, getSmoothPieces |
| Methods inherited from interface math.geom2d.curve.Curve2D |
|---|
draw, getAsAWTShape, getContinuousCurves, getSingularPoints, isSingular |
| Field Detail |
|---|
protected double x1
protected double y1
protected double ctrlx1
protected double ctrly1
protected double ctrlx2
protected double ctrly2
protected double x2
protected double y2
| Constructor Detail |
|---|
public CubicBezierCurve2D()
public CubicBezierCurve2D(double[][] coefs)
coefs - the coefficients of the CubicBezierCurve2D.
public CubicBezierCurve2D(Point2D p1,
Point2D ctrl1,
Point2D ctrl2,
Point2D p2)
p1 - first pointctrl1 - first control pointctrl2 - second control pointp2 - last point
public CubicBezierCurve2D(Point2D p1,
Vector2D v1,
Point2D p2,
Vector2D v2)
p1 - first pointv1 - first tangent vectorp2 - position of last pointv2 - last tangent vector
public CubicBezierCurve2D(double x1,
double y1,
double xctrl1,
double yctrl1,
double xctrl2,
double yctrl2,
double x2,
double y2)
| Method Detail |
|---|
public static final CubicBezierCurve2D create(Point2D p1,
Point2D c1,
Point2D c2,
Point2D p2)
public static final CubicBezierCurve2D create(Point2D p1,
Vector2D v1,
Point2D p2,
Vector2D v2)
public Point2D getControl1()
public Point2D getControl2()
public Point2D getP1()
public Point2D getP2()
public Point2D getCtrlP1()
public Point2D getCtrlP2()
public double[][] getParametric()
[ x0 dx dx2 dx3]
[ y0 dy dy2 dy3]
Coefficients are from the parametric equation : x(t) = x0 + dx*t + dx2*t^2 + dx3*t^3 y(t) = y0 + dy*t + dy2*t^2 + dy3*t^3
public double getWindingAngle(Point2D point)
getWindingAngle in interface OrientedCurve2Dpoint - a point of the plane
OrientedCurve2D.getWindingAngle(java.awt.geom.Point2D)public boolean isInside(Point2D pt)
isInside in interface OrientedCurve2Dpt - a point in the plane
public double getSignedDistance(Point2D point)
OrientedCurve2D
getSignedDistance in interface OrientedCurve2Dpoint - a point of the plane
public double getSignedDistance(double x,
double y)
OrientedCurve2D
getSignedDistance in interface OrientedCurve2Dx - x-coord of a pointy - y-coord of a point
OrientedCurve2D.getSignedDistance(java.awt.geom.Point2D)public Vector2D getTangent(double t)
getTangent in interface SmoothCurve2Dpublic double getCurvature(double t)
getCurvature in interface SmoothCurve2Dpublic boolean isClosed()
isClosed in interface ContinuousCurve2Dpublic double getT0()
getT0 in interface Curve2Dpublic double getT1()
getT1 in interface Curve2Dpublic Collection<Point2D> getIntersections(LinearShape2D line)
getIntersections in interface Curve2DCurve2D.getIntersections(math.geom2d.line.LinearShape2D)public Point2D getPoint(double t)
Curve2D
getPoint in interface Curve2DCurve2D.getPoint(double)public Point2D getFirstPoint()
getFirstPoint in interface Curve2DgetFirstPoint in class AbstractContinuousCurve2Dpublic Point2D getLastPoint()
getLastPoint in interface Curve2DgetLastPoint in class AbstractContinuousCurve2Dpublic double getPosition(Point2D point)
getPosition in interface Curve2Dpoint - a point belonging to the curve
public double project(Point2D point)
project in interface Curve2Dpoint - a point to project
public CubicBezierCurve2D getReverseCurve()
getReverseCurve in interface ContinuousCurve2DgetReverseCurve in interface Curve2DgetReverseCurve in interface SmoothCurve2DgetReverseCurve in interface ContinuousOrientedCurve2DgetReverseCurve in interface OrientedCurve2D
public CubicBezierCurve2D getSubCurve(double t0,
double t1)
getSubCurve in interface ContinuousCurve2DgetSubCurve in interface Curve2DgetSubCurve in interface SmoothCurve2DgetSubCurve in interface ContinuousOrientedCurve2Dt0 - position of the start of the sub-curvet1 - position of the end of the sub-curve
public boolean contains(double x,
double y)
Shape2D
contains in interface Shape2Dpublic boolean contains(Point2D p)
Shape2D
contains in interface Shape2Dpublic double getDistance(Point2D p)
Shape2D
getDistance in interface Shape2DShape2D.getDistance(java.awt.geom.Point2D)
public double getDistance(double x,
double y)
getDistance in interface Shape2DShape2D.getDistance(double, double)public boolean isBounded()
isBounded in interface Shape2Dpublic boolean isEmpty()
Shape2D
isEmpty in interface Shape2Dpublic CurveSet2D<? extends CubicBezierCurve2D> clip(Box2D box)
clip in interface ContinuousCurve2Dclip in interface Curve2Dclip in interface SmoothCurve2Dclip in interface ContinuousOrientedCurve2Dclip in interface OrientedCurve2Dclip in interface Shape2Dbox - the clipping box
public Box2D getBoundingBox()
Shape2D
getBoundingBox in interface Shape2Dpublic CubicBezierCurve2D transform(AffineTransform2D trans)
transform in interface ContinuousCurve2Dtransform in interface Curve2Dtransform in interface SmoothCurve2Dtransform in interface ContinuousOrientedCurve2Dtransform in interface OrientedCurve2Dtransform in interface Shape2Dtrans - an affine transform
public GeneralPath appendPath(GeneralPath path)
ContinuousCurve2D
appendPath in interface ContinuousCurve2Dpath - a path to modify
public GeneralPath getGeneralPath()
public boolean equals(Object obj)
equals in class Objectpublic CubicBezierCurve2D clone()
Curve2D
clone in interface Curve2Dclone in class AbstractSmoothCurve2D
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||