在使用 Ammo.js 设置和获取旋转角度时,可能会出现不匹配的情况。这可能是由于旋转角度的单位不同导致的。可以通过将角度从弧度转换为度来解决此问题。示例代码如下:
// 设置初始旋转角度为45度
let initialRotation = new Ammo.btQuaternion();
initialRotation.setEulerZYX(0, -45 * Math.PI / 180, 0);
// 将初始旋转角度应用到物体
let transform = new Ammo.btTransform();
transform.setRotation(initialRotation);
rigidBody.setWorldTransform(transform);
// 获取当前旋转角度并转换为度
let currentRotation = rigidBody.getWorldTransform().getRotation();
let euler = new Ammo.btVector3();
currentRotation.getEulerZYX(euler);
let angleInDegrees = -(euler.y() * 180 / Math.PI);
console.log(angleInDegrees);
在代码中,初始旋转角度被设置为 -45 度,并被应用到一个刚体中。然后,从该刚体中获取当前旋转角度,并将其转换为度数。最后,将旋转角度打印到控制台中。使用这种方法可以确保设置和获取旋转角度时可以匹配。