私はここ数日、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度の範囲でずれています。