English中文

MorphWeightSpline

new Cesium.MorphWeightSpline(options)

对变形目标使用的权重值数组进行线性插值的样条线。 A spline that linearly interpolates over an array of weight values used by morph targets.
名称 Name 类型 Type 说明 Description
options object 具有以下属性的对象: Object with the following properties:
名称 Name 类型 Type 说明 Description
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.
weights Array.<number> 给出的浮点控制权重数组。对权重进行排序,以便目标的所有权重均按照时间顺序以及它们出现在变形目标所在的 glTF 中的顺序给出。这意味着对于 2 个目标,权重 = [w(0,0), w(0,1), w(1,0), w(1,1)...],其中 w(i,j) 中的 i 和 j 分别是时间索引和目标索引。 The array of floating-point control weights given. The weights are ordered such that all weights for the targets are given in chronological order and order in which they appear in the glTF from which the morph targets come. This means for 2 targets, weights = [w(0,0), w(0,1), w(1,0), w(1,1) ...] where i and j in w(i,j) are the time indices and target indices, respectively.
抛出: Throws:
  • DeveloperError :weights.length必须大于或等于2。 : weights.length must be greater than or equal to 2.
  • DeveloperError :times.length 必须是weights.length 的一个因子。 : times.length must be a factor of weights.length.
示例: Example:
const times = [ 0.0, 1.5, 3.0, 4.5, 6.0 ];
const weights = [0.0, 1.0, 0.25, 0.75, 0.5, 0.5, 0.75, 0.25, 1.0, 0.0]; //Two targets
const spline = new Cesium.WeightSpline({
    times : times,
    weights : weights
});

const p0 = spline.evaluate(times[0]);
另见: See:

方法 Methods

clampTime(time)number

将给定时间限制为样条线覆盖的时间段。 Clamps the given time to the period covered by the spline.
名称 Name 类型 Type 说明 Description
time number 时间。 The time.
返回: Returns:
时间,固定在动画期间。 The time, clamped to the animation period.

evaluate(time, result)Array.<number>

评估给定时间的曲线。 Evaluates the curve at a given time.
名称 Name 类型 Type 说明 Description
time number 评估曲线的时间。 The time at which to evaluate the curve.
result Array.<number> 可选 optional 用于存储结果的对象。 The object onto which to store the result.
返回: Returns:
修改后的结果参数或给定时间曲线上点的新实例。 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]].
名称 Name 类型 Type 说明 Description
time number 时间。 The time.
返回: Returns:
间隔开始处的元素的索引。 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.
将给定时间包裹到样条线覆盖的时间段。 Wraps the given time to the period covered by the spline.
名称 Name 类型 Type 说明 Description
time number 时间。 The time.
返回: Returns:
时间,围绕着更新的动画。 The time, wrapped around to the updated animation.
需要帮助吗?获得答案的最快方法是从社区和团队那里获得答案 Need help? The fastest way to get answers is from the community and team on the Cesium Forum.