【问题标题】:Pivot camera around object on drag拖动时围绕对象旋转相机
【发布时间】:2021-03-13 10:08:29
【问题描述】:

在我的three.js 场景中,我有一个带有{x: 0, y:0 z:-150} 的对象。我的相机位置为{x:0, y:0, z:75);。我想要的是用户可以在对象周围拖动相机,以便用户一直看着对象。

相机需要跟随给定的圆圈笔画向左或向右拖动。

我尝试使用OrbitControls 和pivotPoint 来获得这个结果:

const controls = new OrbitControls( camera, renderer.domElement );
controls.update();
         
object.position.set(0, 0, -150);
pivotPoint = new THREE.Object3D();
object.add(pivotPoint);

camera.position.set(0, 0, 75);
camera.lookAt(object.position);

我现在遇到的问题是相机围绕自身而不是围绕对象旋转。

【问题讨论】:

    标签: javascript three.js 3d camera drag


    【解决方案1】:

    像这样尝试:

    camera.position.set(0, 0, 75);
    
    object.position.set(0, 0, -150);
    
    const controls = new OrbitControls(camera, renderer.domElement);
    controls.target.copy(object.position);
    controls.update();
    

    上述代码的想法是利用OrbitControls 的target 属性,它代表焦点。无需在相机对象上手动调用lookAt()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-23
      • 2019-01-26
      • 2018-01-23
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 2014-08-05
      相关资源
      最近更新 更多