CatmullRomSpline

new Cesium.CatmullRomSpline(options)

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.
参数名称 类型 描述信息
options object Object with the following properties:
参数名称 类型 描述信息
times Array.<number> 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.
points Array.<Cartesian3> The array of Cartesian3 control points.
firstTangent Cartesian3 可选 The tangent of the curve at the first control point. If the tangent is not given, it will be estimated.
lastTangent Cartesian3 可选 The tangent of the curve at the last control point. If the tangent is not given, it will be estimated.
Throws:
使用示例:
// spline above the earth from Philadelphia to Los Angeles
const 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)
    ]
});

const p0 = spline.evaluate(times[i]);         // equal to positions[i]
const p1 = spline.evaluate(times[i] + delta); // interpolated value when delta < times[i + 1] - times[i]
参考:

成员(属性)

The tangent at the first control point.
The tangent at the last control point.
An array of Cartesian3 control points.

readonly times : Array.<number>

An array of times for the control points.

方法

clampTime(time)number

Clamps the given time to the period covered by the spline.
参数名称 类型 描述信息
time number The time.
返回值:
The time, clamped to the animation period.
Evaluates the curve at a given time.
参数名称 类型 描述信息
time number The time at which to evaluate the curve.
result Cartesian3 可选 The object onto which to store the result.
返回值:
The modified result parameter or a new instance of the point on the curve at the given time.
Throws:
  • DeveloperError : time must be in the range [t0, tn], where t0 is the first element in the array times and tn is the last element in the array times.

findTimeInterval(time)number

Finds an index i in times such that the parameter time is in the interval [times[i], times[i + 1]].
参数名称 类型 描述信息
time number The time.
返回值:
The index for the element at the start of the interval.
Throws:
  • DeveloperError : time must be in the range [t0, tn], where t0 is the first element in the array times and tn is the last element in the array times.

wrapTime(time)number

Wraps the given time to the period covered by the spline.
参数名称 类型 描述信息
time number The time.
返回值:
The time, wrapped around to the updated animation.