1

我刚开始接触 three.js,我有一个固定在 0,0,0 的相机,可以旋转 360 度。我有一个 3D 对象,它从相机前面开始,我希望围绕相机的轨道与相机的旋转相切,这样基本上 3D 对象就不会离开相机的视线

相机的代码非常标准

    phi     = TDP.toRadians( 90 - lat );    
    theta   = TDP.toRadians( lon );         

    camera.target.x = Math.sin( phi ) * Math.cos( theta );
    camera.target.y = Math.cos( phi );
    camera.target.z = Math.sin( phi ) * Math.sin( theta );

至于更新 3D 对象的代码

    arrow.position.x = - Math.sin( TDP.toRadians( lon ) ) * camera.target.x + arrow.position.x;
    arrow.position.z = Math.cos( TDP.toRadians( lon ) ) * camera.target.z + arrow.position.z;

我一直在玩这个等式,并且在数学方面陷入困境。物体沿 x 轴的运动是可行的,但 z 位置偏离了。提前感谢您的帮助。

4

0 回答 0