【问题标题】:Three.js place an object in rotating camera's fovThree.js 在旋转相机的 fov 中放置一个对象
【发布时间】:2014-11-14 03:08:07
【问题描述】:

我有一个固定位置的透视相机,它通过键盘输入围绕所有 3 个轴旋转。以随机间隔,独立于用户输入,我需要将对象放置在相机的视野内,无论相机朝哪个方向看。对象还需要从相机的 fov 中心偏移特定的 x 和 y 距离,并从相机的位置偏移特定的 z 距离。我不能使用 camera.addChild,因为一旦添加了对象,我需要通过独立于相机移动的补间来移动对象。

如何做到这一点?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    您想将一个点从相机空间转换到世界空间。

    在相机的坐标系中,相机位于原点,正向下看它的负 z 轴。

    将对象放在相机前面(在相机的坐标系中)。

    object.position.set( x, y, - z ); // z is the distance in front of the camera, and is positive
    

    现在,将对象的位置从相机空间转换到世界空间:

    object.position.applyMatrix4( camera.matrixWorld );
    

    three.js r.69

    【讨论】:

    • 谢谢你,韦斯特兰利!这是有道理的。我试试看。
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 2021-08-23
    • 2014-05-19
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    相关资源
    最近更新 更多