【问题标题】:how to set the first lookAt/target of a Control如何设置控件的第一个外观/目标
【发布时间】:2021-09-23 15:19:13
【问题描述】:

我需要设置场景的初始“lookAt”点,这将是屏幕的中心和控件的旋转中心。 如果可能的话,我更愿意设置一个点(或一个对象的位置),而不是旋转角度。

控件是 OrbitControl。如果我只是在 Control 初始化之前设置了 lookAt,那么在第一次用户交互时中心会恢复到 (0,0,0),这会导致“间隙”...

// camera
camera = new THREE.PerspectiveCamera( 35, window.innerWidth / window.innerHeight, 0.1, 20000);
camera.position.set(0,20,20);
camera.lookAt(new THREE.Vector3(0,10,0));

// controls
controls = new THREE.OrbitControls( camera );
controls.addEventListener( 'change', render );

如何正确设置初始点?

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    尝试设置控件的目标并移除 camera.lookAt 调用:

    controls.target = new THREE.Vector3(0, 10, 0);
    controls.update();
    

    【讨论】:

    • 太棒了!我没有意识到它可以用这个来完成,工作完美..非常感谢
    • ...然后调用controls.update(); 获取第一帧。
    • 当您转到不同的全景图然后返回新的全景图时,这似乎不起作用,似乎被忽略了。有什么想法吗?
    【解决方案2】:

    或者更直接:controls.target.set(0, 10, 0);

    【讨论】:

      猜你喜欢
      • 2011-01-03
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 2013-11-14
      • 1970-01-01
      相关资源
      最近更新 更多