补间相机运动围绕地球仪three.js和tween.js

时间:2015-10-01 09:14:18

标签: three.js tween.js

按下按钮时,尝试让相机在地球仪周围平滑旋转到新位置。我用以下方法做了位置证明,检查坐标是否正常

camera.position.set(posX,posY,posZ);
camera.lookAt(new THREE.Vector3(0,0,0));

然而,当我执行以下操作时,试图让它无法移动。似乎.onupdate没有被调用,我无法弄清楚我做错了什么

var from = {
        x : camera.position.x,
        y : camera.position.y,
        z : camera.position.z
      };

      var to = {
        x : posX,
        y : posY,
        z : posZ
      };
      var tween = new TWEEN.Tween(from)
      .to(to,600)
      .easing(TWEEN.Easing.Linear.None)
      .onUpdate(function () {
        camera.position.set(this.x, this.y, this.z);
        camera.lookAt(new THREE.Vector3(0,0,0));
      })
      .onComplete(function () {
        camera.lookAt(new THREE.Vector3(0,0,0));
      })
      .start();

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:9)

你在动画函数中添加了TWEEN.update()吗?因为你的代码确实有效。看小提琴。 http://jsfiddle.net/Komsomol/r4nctoxy/

function animate() {
    TWEEN.update();
    requestAnimationFrame(animate);
    renderer.render(scene, camera);
    controls.update();
}