A Hermite spline is a cubic interpolating spline. Points, incoming tangents, outgoing tangents, and times
must be defined for each control point. The outgoing tangents are defined for points [0, n - 2] and the incoming
tangents are defined for points [1, n - 1]. For example, when interpolating a segment of the curve between points[i] and
points[i + 1], the tangents at the points will be outTangents[i] and inTangents[i],
respectively.
alias HermiteSpline
- 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.inTangents The array of Cartesian3 incoming tangents at each control point.
- {Cartesian3[]} options.outTangents The array of Cartesian3 outgoing tangents at each control point.
exception {DeveloperError} points.length must be greater than or equal to 2.
exception {DeveloperError} times.length must be equal to points.length.
exception {DeveloperError} inTangents and outTangents must have a length equal to points.length - 1.
// Create a G1 continuous Hermite spline
var times = [ 0.0, 1.5, 3.0, 4.5, 6.0 ];
var spline = new Cesium.HermiteSpline({
times : times,
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)
],
outTangents : [
new Cesium.Cartesian3(1125196, -161816, 270551),
new Cesium.Cartesian3(-996690.5, -365906.5, 184028.5),
new Cesium.Cartesian3(-2096917, 48379.5, -292683.5),
new Cesium.Cartesian3(-890902.5, 408999.5, -447115)
],
inTangents : [
new Cesium.Cartesian3(-1993381, -731813, 368057),
new Cesium.Cartesian3(-4193834, 96759, -585367),
new Cesium.Cartesian3(-1781805, 817999, -894230),
new Cesium.Cartesian3(1165345, 112641, 47281)
]
});
var p0 = spline.evaluate(times[0]);
A Hermite spline is a cubic interpolating spline. Points, incoming tangents, outgoing tangents, and times must be defined for each control point. The outgoing tangents are defined for points [0, n - 2] and the incoming tangents are defined for points [1, n - 1]. For example, when interpolating a segment of the curve between
points[i]
andpoints[i + 1]
, the tangents at the points will beoutTangents[i]
andinTangents[i]
, respectively.alias HermiteSpline
- 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.inTangents The array of Cartesian3 incoming tangents at each control point. - {Cartesian3[]} options.outTangents The array of Cartesian3 outgoing tangents at each control point.
exception {DeveloperError} points.length must be greater than or equal to 2. exception {DeveloperError} times.length must be equal to points.length. exception {DeveloperError} inTangents and outTangents must have a length equal to points.length - 1.
// Create a G1 continuous Hermite spline var times = [ 0.0, 1.5, 3.0, 4.5, 6.0 ]; var spline = new Cesium.HermiteSpline({ times : times, 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) ], outTangents : [ new Cesium.Cartesian3(1125196, -161816, 270551), new Cesium.Cartesian3(-996690.5, -365906.5, 184028.5), new Cesium.Cartesian3(-2096917, 48379.5, -292683.5), new Cesium.Cartesian3(-890902.5, 408999.5, -447115) ], inTangents : [ new Cesium.Cartesian3(-1993381, -731813, 368057), new Cesium.Cartesian3(-4193834, 96759, -585367), new Cesium.Cartesian3(-1781805, 817999, -894230), new Cesium.Cartesian3(1165345, 112641, 47281) ] }); var p0 = spline.evaluate(times[0]);
QuaternionSpline
LinearSpline
CatmullRomSpline