铯WebGL相机旋转,如何停止旋转

Cesium WebGL Camera Rotate, How to Stop the Rotation

本文关键字:旋转 何停止 相机 WebGL      更新时间:2023-09-26

好,第一次使用铯。我有一个简单的、非高级的问题,我在他们的表格上发布了几次,但没有人回应。所以我想在这里试试。

我所需要做的就是弄清楚如何在调用另一个事件之前停止一个事件。下面是一个正在发生的事情的例子。地球仪在用户连接时旋转,但如果他们点击"飞我回家"等,我需要它停止。

下面的代码。

所以spinGlobe中的arg就是spinRate。如果我在初始连接上输入0.0,它将不会旋转。完美的所以我认为,如果一个点击事件(用户点击将我带回家)然后调用spinGlobe(0.0),地球将停止旋转。但事实并非如此。我可以不动态更改spinRate吗?还是我做错了?

spinGlobe( 0.5 )
 function spinGlobe( dynamicRate )
 var previousTime = Date.now();
 viewer.clock.onTick.addEventListener(function( clock ) {
 var spinRate = dynamicRate;
 var currentTime = Date.now();
 var delta = ( currentTime - previousTime ) / 1000;
 previousTime = currentTime;
 viewer.scene.camera.rotate(Cesium.Cartesian3.UNIT_Z, -spinRate * delta);
 });
 }
spinGlobe( dynamicRate ){
    var previousTime = Date.now();
    this.viewer.scene.postRender.addEventListener(function (scene, time){
        var spinRate = dynamicRate;
        var currentTime = Date.now();
        var delta = ( currentTime - previousTime ) / 1000;
        previousTime = currentTime;
        this.viewer.scene.camera.rotate(Cesium.Cartesian3.UNIT_Z, -spinRate * delta);
    });
}