在过去的几天里,我一直在使用 OpenGL 和 JBullet。经过大量的修补,我终于设法修复了 JBullet 中的一些错误,并使其可用于一些演示。我目前遇到的问题是我无法将翻译转换为度数,到目前为止,我使用四元数获得了最好的结果,使用以下代码转换为弧度:
public Vector3f getRadians(Quat4f quat) {
Vector3f v = new Vector3f();
//float scale = (float) Math.abs(quat.x * quat.y * quat.z); //Apparently the scale of the angle, thought without I get a almost perfect result on the X-Axis
float angle = (float) Math.abs(Math.acos(quat.w)) * 2.0f;
v.x = angle * Math.round(quat.x);
v.y = angle * Math.round(quat.y);
v.z = angle * Math.round(quat.z);
return v;
}
值得注意的是,我唯一的成功是在四元数的 X 轴上,而且在任何其他轴上都没有平移。更不用说它偏离了 0-6 度。