A Catmull-Rom spline is a cubic spline where the tangent at control points,
except the first and last, are computed using the previous and next control points.
Catmull-Rom splines are in the class C1.
alias CatmullRomSpline
- The options object takes the following properties
- {Number[]} options.times An array of strictly increasing, unit-less, floating-point times at each point.
The values are in no way connected to the clock time. They are the parameterization for the curve.
- {Cartesian3[]} options.points The array of Cartesian3 control points.
- {Cartesian3} [options.firstTangent] The tangent of the curve at the first control point.
If the tangent is not given, it will be estimated.
- {Cartesian3} [options.lastTangent] The tangent of the curve at the last control point.
If the tangent is not given, it will be estimated.
exception {DeveloperError} points.length must be greater than or equal to 2.
exception {DeveloperError} times.length must be equal to points.length.
// spline above the earth from Philadelphia to Los Angeles
var spline = new Cesium.CatmullRomSpline({
times : [ 0.0, 1.5, 3.0, 4.5, 6.0 ],
points : [
new Cesium.Cartesian3(1235398.0, -4810983.0, 4146266.0),
new Cesium.Cartesian3(1372574.0, -5345182.0, 4606657.0),
new Cesium.Cartesian3(-757983.0, -5542796.0, 4514323.0),
new Cesium.Cartesian3(-2821260.0, -5248423.0, 4021290.0),
new Cesium.Cartesian3(-2539788.0, -4724797.0, 3620093.0)
]
});
var p0 = spline.evaluate(times[i]); // equal to positions[i]
var p1 = spline.evaluate(times[i] + delta); // interpolated value when delta < times[i + 1] - times[i]
A Catmull-Rom spline is a cubic spline where the tangent at control points, except the first and last, are computed using the previous and next control points. Catmull-Rom splines are in the class C1.
alias CatmullRomSpline
- The options object takes the following properties - {Number[]} options.times An array of strictly increasing, unit-less, floating-point times at each point. The values are in no way connected to the clock time. They are the parameterization for the curve. - {Cartesian3[]} options.points The array of Cartesian3 control points. - {Cartesian3} [options.firstTangent] The tangent of the curve at the first control point. If the tangent is not given, it will be estimated. - {Cartesian3} [options.lastTangent] The tangent of the curve at the last control point. If the tangent is not given, it will be estimated.
exception {DeveloperError} points.length must be greater than or equal to 2. exception {DeveloperError} times.length must be equal to points.length.
// spline above the earth from Philadelphia to Los Angeles var spline = new Cesium.CatmullRomSpline({ times : [ 0.0, 1.5, 3.0, 4.5, 6.0 ], points : [ new Cesium.Cartesian3(1235398.0, -4810983.0, 4146266.0), new Cesium.Cartesian3(1372574.0, -5345182.0, 4606657.0), new Cesium.Cartesian3(-757983.0, -5542796.0, 4514323.0), new Cesium.Cartesian3(-2821260.0, -5248423.0, 4021290.0), new Cesium.Cartesian3(-2539788.0, -4724797.0, 3620093.0) ] }); var p0 = spline.evaluate(times[i]); // equal to positions[i] var p1 = spline.evaluate(times[i] + delta); // interpolated value when delta < times[i + 1] - times[i]
QuaternionSpline
LinearSpline
HermiteSpline