【问题标题】:Three JS rotate model towards xyz position三个 JS 向 xyz 位置旋转模型
【发布时间】:2022-01-18 07:57:51
【问题描述】:

我正在尝试将三个 JS 中的对象旋转到空间内的固定 xyz 位置。目前我可以这样实现:

var position_x  = -0.85;
var position_z  = -4.44;

model.lookAt(position_x, 0, position_z);

但是,lookAt() 函数会立即旋转模型,我想更慢地旋转模型。有没有办法使用内置的三个 JS 函数来实现这一点?

谢谢!

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    有没有办法使用内置的三个 JS 函数来完成这个?

    是的,您可以使用Quaternion.rotateTowards(),其工作方式类似于 Unity 的 Quaternion.rotateTowards() 方法。

    这个想法是计算由四元数表示的目标方向。您可以使用Matrix4.lookAt() 来执行此操作,然后通过Quaternion.setFromRotationMatrix() 创建基于此矩阵的四元数。

    接下来,您计算每帧的角度步长,这将定义您的对象转向目标的程度。 step 的计算如下:

    const step = speed * delta;
    

    delta 是以秒为单位的时间增量值,speed 以弧度每秒表示我们模型的转动速率。

    这里有一个完整的代码示例:

    https://threejs.org/examples/webgl_math_orientation_transform

    【讨论】:

    • 谢谢!!这非常有效! :)
    猜你喜欢
    • 2012-11-29
    • 2019-03-29
    • 2014-05-07
    • 2013-11-12
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2012-08-02
    相关资源
    最近更新 更多