|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.awt.geom.CubicCurve2D
java.awt.geom.CubicCurve2D.Double
math.geom2d.spline.BezierCurve2D
public class BezierCurve2D
An extension of the Bezier curve provided in java.awt.geom, with support for SmoothCurve2D and OrientedCurve2D.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class java.awt.geom.CubicCurve2D |
|---|
java.awt.geom.CubicCurve2D.Double, java.awt.geom.CubicCurve2D.Float |
| Field Summary |
|---|
| Fields inherited from class java.awt.geom.CubicCurve2D.Double |
|---|
ctrlx1, ctrlx2, ctrly1, ctrly2, x1, x2, y1, y2 |
| Fields inherited from interface math.geom2d.curve.ContinuousCurve2D |
|---|
CIRCLE, CLOSED_EDGE, LOOP, OPEN_EDGE |
| Fields inherited from interface math.geom2d.Shape2D |
|---|
ACCURACY, defaultClipWindow, EMPTY_SET |
| Constructor Summary | |
|---|---|
BezierCurve2D()
|
|
BezierCurve2D(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. |
|
BezierCurve2D(java.awt.geom.Point2D p1,
java.awt.geom.Point2D ctrl1,
java.awt.geom.Point2D ctrl2,
java.awt.geom.Point2D p2)
Build a new Bezier curve of degree 3 by specifying position of extreme points and position of 2 control points. |
|
BezierCurve2D(java.awt.geom.Point2D p1,
Vector2D v1,
java.awt.geom.Point2D p2,
Vector2D v2)
Build a new Bezier curve of degree 3 by specifying position and tangent of first and last points. |
|
| Method Summary | |
|---|---|
java.awt.geom.GeneralPath |
appendPath(java.awt.geom.GeneralPath path)
Append the path of the curve to the given path. |
CurveSet2D<? extends BezierCurve2D> |
clip(Box2D box)
Clip the circle arc by a box. |
Polyline2D |
getAsPolyline(int n)
Creates a polyline with n line segments approximating
the Bezier curve. |
Box2D |
getBoundingBox()
Returns the bounding box of the shape. |
Shape2D |
getClippedShape(Box2D box)
|
java.util.Collection<ContinuousCurve2D> |
getContinuousCurves()
Returns the collection of continuous curves which constitute this curve. |
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(java.awt.geom.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()
Get the first point of the curve. |
java.awt.geom.GeneralPath |
getInnerPath()
|
java.util.Collection<Point2D> |
getIntersections(StraightObject2D line)
Use approximation, by replacing Bezier curve with a polyline. |
Point2D |
getLastPoint()
Get the last point of the curve. |
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. |
Point2D |
getPoint(double t,
Point2D point)
Same as getPoint(t), but gives the point as a parameter. |
double |
getPosition(Point2D point)
Compute position by approximating cubic spline with a polyline. |
BezierCurve2D |
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(java.awt.geom.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. |
java.util.Collection<? extends SmoothCurve2D> |
getSmoothPieces()
Returns a set of smooth curves. |
BezierCurve2D |
getSubCurve(double t0,
double t1)
Computes subcurve. |
double |
getT0()
returns 0, as Bezier curve is parametrized between 0 and 1. |
double |
getT1()
returns 1, as Bezier curve is parametrized between 0 and 1. |
Vector2D |
getTangent(double t)
|
double |
getWindingAngle(java.awt.geom.Point2D point)
Use winding angle of approximated polyline |
boolean |
isBounded()
return true, a cubic Bezier Curve is always bounded. |
boolean |
isClosed()
The cubic curve is never closed. |
boolean |
isInside(java.awt.geom.Point2D pt)
return true if the point is 'inside' the domain bounded by the curve. |
double |
project(Point2D point)
Compute position by approximating cubic spline with a polyline. |
BezierCurve2D |
transform(AffineTransform2D trans)
Returns the Bezier Curve transformed by the given AffineTransform2D. |
| Methods inherited from class java.awt.geom.CubicCurve2D.Double |
|---|
getBounds2D, getCtrlP1, getCtrlP2, getCtrlX1, getCtrlX2, getCtrlY1, getCtrlY2, getP1, getP2, getX1, getX2, getY1, getY2, setCurve |
| Methods inherited from class java.awt.geom.CubicCurve2D |
|---|
clone, contains, contains, contains, contains, getBounds, getFlatness, getFlatness, getFlatness, getFlatnessSq, getFlatnessSq, getFlatnessSq, getPathIterator, getPathIterator, intersects, intersects, setCurve, setCurve, setCurve, setCurve, solveCubic, solveCubic, subdivide, subdivide, subdivide |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface java.awt.Shape |
|---|
contains, contains, contains, contains, getBounds, getBounds2D, getPathIterator, getPathIterator, intersects, intersects |
| Constructor Detail |
|---|
public BezierCurve2D()
public BezierCurve2D(java.awt.geom.Point2D p1,
java.awt.geom.Point2D ctrl1,
java.awt.geom.Point2D ctrl2,
java.awt.geom.Point2D p2)
p1 - first pointctrl1 - first control pointctrl2 - second control pointp2 - last point
public BezierCurve2D(java.awt.geom.Point2D p1,
Vector2D v1,
java.awt.geom.Point2D p2,
Vector2D v2)
p1 - first pointv1 - first tangent vectorp2 - position of last pointv2 - last tangent vector
public BezierCurve2D(double x1,
double y1,
double xctrl1,
double yctrl1,
double xctrl2,
double yctrl2,
double x2,
double y2)
| Method Detail |
|---|
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 Polyline2D getAsPolyline(int n)
n line segments approximating
the Bezier curve.
getAsPolyline in interface ContinuousCurve2Dn - number of line segments of polyline
n line segments.public Vector2D getTangent(double t)
getTangent in interface SmoothCurve2Dpublic double getCurvature(double t)
getCurvature in interface SmoothCurve2Dpublic java.util.Collection<? extends SmoothCurve2D> getSmoothPieces()
ContinuousCurve2D
getSmoothPieces in interface ContinuousCurve2Dpublic boolean isClosed()
isClosed in interface ContinuousCurve2Dpublic double getWindingAngle(java.awt.geom.Point2D point)
getWindingAngle in interface OrientedCurve2Dpoint - a point of the plane
math.geom2d.OrientedCurve2D#getWindingAngle(java.awt.geom.Point2D)public boolean isInside(java.awt.geom.Point2D pt)
isInside in interface OrientedCurve2Dpt - a point in the plane
public double getSignedDistance(java.awt.geom.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
math.geom2d.OrientedCurve2D#getSignedDistance(java.awt.geom.Point2D)public double getT0()
getT0 in interface Curve2Dpublic double getT1()
getT1 in interface Curve2Dpublic java.util.Collection<Point2D> getIntersections(StraightObject2D line)
getIntersections in interface Curve2Dmath.geom2d.Curve2D#getIntersections(math.geom2d.StraightObject2D)public Point2D getPoint(double t)
Curve2D
getPoint in interface Curve2Dmath.geom2d.Curve2D#getPoint(double)
public Point2D getPoint(double t,
Point2D point)
Curve2D
getPoint in interface Curve2Dmath.geom2d.Curve2D#getPoint(double, math.geom2d.Point2D)public Point2D getFirstPoint()
getFirstPoint in interface Curve2Dpublic Point2D getLastPoint()
getLastPoint in interface Curve2Dpublic 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 BezierCurve2D getReverseCurve()
getReverseCurve in interface ContinuousCurve2DgetReverseCurve in interface ContinuousOrientedCurve2DgetReverseCurve in interface Curve2DgetReverseCurve in interface OrientedCurve2DgetReverseCurve in interface SmoothCurve2D
public BezierCurve2D getSubCurve(double t0,
double t1)
getSubCurve in interface ContinuousCurve2DgetSubCurve in interface ContinuousOrientedCurve2DgetSubCurve in interface Curve2DgetSubCurve in interface SmoothCurve2Dt0 - position of the start of the sub-curvet1 - position of the end of the sub-curve
public double getDistance(java.awt.geom.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 Shape2D getClippedShape(Box2D box)
math.geom2d.Shape2D#getClippedShape(math.geom2d.Box2D)public CurveSet2D<? extends BezierCurve2D> clip(Box2D box)
clip in interface ContinuousCurve2Dclip in interface ContinuousOrientedCurve2Dclip in interface Curve2Dclip in interface OrientedCurve2Dclip in interface SmoothCurve2Dclip in interface Shape2Dbox - the clipping box
public Box2D getBoundingBox()
Shape2D
getBoundingBox in interface Shape2Dpublic BezierCurve2D transform(AffineTransform2D trans)
transform in interface ContinuousCurve2Dtransform in interface ContinuousOrientedCurve2Dtransform in interface Curve2Dtransform in interface OrientedCurve2Dtransform in interface SmoothCurve2Dtransform in interface Shape2Dtrans - an affine transform
public java.awt.geom.GeneralPath appendPath(java.awt.geom.GeneralPath path)
ContinuousCurve2D
appendPath in interface ContinuousCurve2Dpath - a path to modify
public java.awt.geom.GeneralPath getInnerPath()
public java.util.Collection<ContinuousCurve2D> getContinuousCurves()
Curve2D
getContinuousCurves in interface Curve2D
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||