|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object math.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 pointpublic CubicBezierCurve2D(Point2D p1, Vector2D v1, Point2D p2, Vector2D v2)
p1
- first pointv1
- first tangent vectorp2
- position of last pointv2
- last tangent vectorpublic 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 OrientedCurve2D
point
- a point of the plane
OrientedCurve2D.getWindingAngle(java.awt.geom.Point2D)
public boolean isInside(Point2D pt)
isInside
in interface OrientedCurve2D
pt
- a point in the plane
public double getSignedDistance(Point2D point)
OrientedCurve2D
getSignedDistance
in interface OrientedCurve2D
point
- a point of the plane
public double getSignedDistance(double x, double y)
OrientedCurve2D
getSignedDistance
in interface OrientedCurve2D
x
- x-coord of a pointy
- y-coord of a point
OrientedCurve2D.getSignedDistance(java.awt.geom.Point2D)
public Vector2D getTangent(double t)
getTangent
in interface SmoothCurve2D
public double getCurvature(double t)
getCurvature
in interface SmoothCurve2D
public boolean isClosed()
isClosed
in interface ContinuousCurve2D
public double getT0()
getT0
in interface Curve2D
public double getT1()
getT1
in interface Curve2D
public Collection<Point2D> getIntersections(LinearShape2D line)
getIntersections
in interface Curve2D
Curve2D.getIntersections(math.geom2d.line.LinearShape2D)
public Point2D getPoint(double t)
Curve2D
getPoint
in interface Curve2D
Curve2D.getPoint(double)
public Point2D getFirstPoint()
getFirstPoint
in interface Curve2D
getFirstPoint
in class AbstractContinuousCurve2D
public Point2D getLastPoint()
getLastPoint
in interface Curve2D
getLastPoint
in class AbstractContinuousCurve2D
public double getPosition(Point2D point)
getPosition
in interface Curve2D
point
- a point belonging to the curve
public double project(Point2D point)
project
in interface Curve2D
point
- a point to project
public CubicBezierCurve2D getReverseCurve()
getReverseCurve
in interface ContinuousCurve2D
getReverseCurve
in interface Curve2D
getReverseCurve
in interface SmoothCurve2D
getReverseCurve
in interface ContinuousOrientedCurve2D
getReverseCurve
in interface OrientedCurve2D
public CubicBezierCurve2D getSubCurve(double t0, double t1)
getSubCurve
in interface ContinuousCurve2D
getSubCurve
in interface Curve2D
getSubCurve
in interface SmoothCurve2D
getSubCurve
in interface ContinuousOrientedCurve2D
t0
- 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 Shape2D
public boolean contains(Point2D p)
Shape2D
contains
in interface Shape2D
public double getDistance(Point2D p)
Shape2D
getDistance
in interface Shape2D
Shape2D.getDistance(java.awt.geom.Point2D)
public double getDistance(double x, double y)
getDistance
in interface Shape2D
Shape2D.getDistance(double, double)
public boolean isBounded()
isBounded
in interface Shape2D
public boolean isEmpty()
Shape2D
isEmpty
in interface Shape2D
public CurveSet2D<? extends CubicBezierCurve2D> clip(Box2D box)
clip
in interface ContinuousCurve2D
clip
in interface Curve2D
clip
in interface SmoothCurve2D
clip
in interface ContinuousOrientedCurve2D
clip
in interface OrientedCurve2D
clip
in interface Shape2D
box
- the clipping box
public Box2D getBoundingBox()
Shape2D
getBoundingBox
in interface Shape2D
public CubicBezierCurve2D transform(AffineTransform2D trans)
transform
in interface ContinuousCurve2D
transform
in interface Curve2D
transform
in interface SmoothCurve2D
transform
in interface ContinuousOrientedCurve2D
transform
in interface OrientedCurve2D
transform
in interface Shape2D
trans
- an affine transform
public GeneralPath appendPath(GeneralPath path)
ContinuousCurve2D
appendPath
in interface ContinuousCurve2D
path
- a path to modify
public GeneralPath getGeneralPath()
public boolean equals(Object obj)
equals
in class Object
public CubicBezierCurve2D clone()
Curve2D
clone
in interface Curve2D
clone
in class AbstractSmoothCurve2D
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |