求教一个 刚体旋转角度的问题哈

如下图的小人,我希望他然绕着自己的Y轴旋转。在小人的四元数为默认的情况下。使用setAngularVelocity(0,1,0)即可实现这个功能。


但是有的时候,这个小人不的四元数已经发生了改变,比如变成了下图的这个样子。这个时候使用
setAngularVelocity(0,1,0)就不对了,我还想让他绕自己的Y轴旋转。这个时候,这个旋转角速度应该如何求解出来哈。

给小人套个父节点,小人绕着父节点Y轴旋转,父节点按原来小人需要的样子旋转。

这个只是权宜之计哦,我就是想知道这个角度的代码应该怎么写。好长长见识

设置欧拉角

破案了,直接用默认的旋转速度。乘以当前节点的四元数即可,代码如下

 let av = new Vec3();
 Vec3.transformQuat(av, new Vec3(0, 1, 0), rotation);
 this.rigidBody.setAngularVelocity(av);
1赞

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。