CatmullRomSpline class
A 2D spline that passes smoothly through the given control points using a centripetal Catmull-Rom spline.
When the curve is evaluated with transform, the output values will move smoothly from one control point to the next, passing through the control points.
Unlike most cubic splines, Catmull-Rom splines have the advantage that their curves pass through the control points given to them. They are cubic polynomial representations, and, in fact, Catmull-Rom splines can be converted mathematically into cubic splines. This class implements a "centripetal" Catmull-Rom spline. The term centripetal implies that it won't form loops or self-intersections within a single segment.
See also:
- Centripetal Catmull–Rom splines on Wikipedia.
- Parameterization and Applications of Catmull-Rom Curves, a paper on using Catmull-Rom splines.
- CatmullRomCurve, an animation curve that uses a CatmullRomSpline as its internal representation.
- Inheritance
-
- Object
- ParametricCurve<
Offset> - Curve2D
- CatmullRomSpline
Constructors
-
CatmullRomSpline(List<
Offset> controlPoints, {double tension = 0.0, Offset? startHandle, Offset? endHandle}) - Constructs a centripetal Catmull-Rom spline curve.
-
CatmullRomSpline.precompute(List<
Offset> controlPoints, {double tension = 0.0, Offset? startHandle, Offset? endHandle}) - Constructs a centripetal Catmull-Rom spline curve.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- samplingSeed → int
-
Returns a seed value used by generateSamples to seed a random number
generator to avoid sample aliasing.
no setteroverride
Methods
-
findInverse(
double x) → double -
Returns the parameter
t
that corresponds to the given x value of the spline.inherited -
generateSamples(
{double start = 0.0, double end = 1.0, double tolerance = 1e-10}) → Iterable< Curve2DSample> -
Generates a list of samples with a recursive subdivision until a tolerance
of
tolerance
is reached.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
transform(
double t) → Offset -
Returns the value of the curve at point
t
.inherited -
transformInternal(
double t) → Offset -
Returns the value of the curve at point
t
.override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited