three.js - 如何线性插值 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.Vector3())
Object3D.rotation
不是类型THREE.Vector3
但是THREE.Euler
. 使用Quaternion.setFromEuler()从欧拉角设置四元数值。
推荐阅读
- javascript - 一旦我设置了 screenProps 的 setState,如何避免在 tabNavigator 中重新渲染屏幕?
- java - Camel SEDA 如果队列已满,则关闭消息
- c - 禁止浮动到双重转换
- r - R:当max <= min时,如何替换(切换)数据框中连续的最大值和最小值?
- c++ - 私有设置和类 OMP、随机 C++。结果理解有问题
- bash - 如果输出不为空,则打印命令的输出,否则回显无输出
- javascript - Google App Script .getEvents 问题 - 如何检索事件
- cmake - 修改目标安装路径
- python - 在 Bokeh javascript 回调中重新运行源
- vb.net - 有没有更有效的方法来查找子字符串结尾的索引?