【问题标题】:ThreeJS: rotate on y axis to face cameraThreeJS:在y轴上旋转以面对相机
【发布时间】:2016-03-24 22:50:03
【问题描述】:

当相机移动时,我希望我的对象在 Y 轴上旋转以始终面向相机(就像一个人在转圈一样)。

这是我迄今为止尝试过的:

var render = function() {
    animationFrameId = window.requestAnimationFrame( render);

    obj.lookAt(camera.position);

    obj.rotation.set(0, obj.rotation.y, 0);
}

但我缺少一些简单的数学或三角函数,因为当我旋转时,它最终会“跳跃”并且对象似乎朝向错误的方向

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    如果您使用 .lookAt 对象从各个方向查看相机,您必须像这样计算相机和网格之间的 Y 平面上的角度。

    var render = function() {
    
        animationFrameId = window.requestAnimationFrame( render);    
    
        obj.rotation.y = Math.atan2( ( camera.position.x - obj.position.x ), ( camera.position.z - obj.position.z ) );
    
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多