类似使用TWEEN,Cesium如何手写平滑缓动动画?

Cesium.Animation,这是Cesium库中用于创建3D动画的一个部分。Cesium是一个用于创建3D地球和2D地图的JavaScript库,它广泛用于地理空间数据的可视化。

在Cesium中,Animation对象可以用于多种目的,例如:

平滑地移动3D对象或相机。
改变对象的旋转。
改变对象的缩放。
创建复杂的动画序列。
使用Cesium.Animation可以创建各种类型的动画,例如平移(translation)、旋转(rotation)和缩放(scale)等。这些都可以在给定的时间段内平滑过渡,以便创建平滑的动画效果。

例如,以下是一个创建平移动画的简单示例:

点击查看代码
var viewer = new Cesium.Viewer('cesiumContainer');

var entity = viewer.entities.add({
    position : Cesium.Cartesian3.fromDegrees(-123.0744619, 44.0503706),
    model : {
        uri : './path/to/your/model.gltf',
    }
});

var animation = new Cesium.Animation({
    duration : 2, // Duration in seconds
    start : new Date().getTime(), // Start time
    animations : [{
        name : 'move',
        times : [0], // When to apply the transformation
        positions : [Cesium.Cartesian3.fromDegrees(-123.0744619 + 0.01, 44.0503706 + 0.01)], // New position
    }],
});

entity.model.mergeAnimation(animation);
这个示例将模型在两秒内从当前位置平移到新的位置。可以通过添加更多的动画段来创建更复杂的动画效果。每个动画段都可以定义自己的时间(times)和位置(positions),以便在不同的时间点应用不同的变换。
posted @ 2023-09-13 09:18  橘个栗子  阅读(195)  评论(0编辑  收藏  举报