首页 > 解决方案 > 如何线性插值 THREE.Object3d() 的旋转值?

问题描述

我正在尝试将玩家(THREE.Object3d())的位置和旋转值线性插值到所需的位置(THREE.Vector3())。

这是我的代码:

player.position.lerp(desiredPosition, 0.2);
player.rotation.lerp(desiredRotation, 0.2);

但我收到以下错误:

未捕获的 TypeError:player.rotation.lerp 不是函数

我知道有一个player.quaternion.slerp()函数,但是有没有办法在x, y, z不使用四元数的情况下插入旋转值?

如果没有,如何将 desiredRotation( THREE.Vector3())转换为THREE.Quaternion()可以使用该slerp()函数?

标签: three.js

解决方案


所需的旋转(THREE.Vector3())

Object3D.rotation不是类型THREE.Vector3但是THREE.Euler. 使用Quaternion.setFromEuler()从欧拉角设置四元数值。


推荐阅读