0
私のオブジェクトのモデル行列からグローバルy軸の周りの回転を抽出する方法を見つけることができません。回転行列からy軸に関する回転を取得
私はオブジェクトの現在のモデル行列をglm :: mat4として持っており、y軸を中心に回転を取り消す必要があります。
glmには何の機能もありますか?
私のオブジェクトのモデル行列からグローバルy軸の周りの回転を抽出する方法を見つけることができません。回転行列からy軸に関する回転を取得
私はオブジェクトの現在のモデル行列をglm :: mat4として持っており、y軸を中心に回転を取り消す必要があります。
glmには何の機能もありますか?
行列の回転部分をオイラー角に変換する必要があります。それは簡単な操作ではありません。私は "glm"には関数があるのかどうか分かりませんが、4x4行列の回転部分をX、Y、Zオイラー角に変換するコード(他の方法もあります)があります:
function Matrix4ToEuler(OutEuler, InMatrix4)
{
let cy = Math.sqrt(InMatrix4[0] * InMatrix4[0] + InMatrix4[1] * InMatrix4[1]);
if(cy > 0.001) {
OutEuler.x = Math.atan2(InMatrix4[6], InMatrix4[10]);
OutEuler.y = Math.atan2(-InMatrix4[2], cy);
OutEuler.z = Math.atan2(InMatrix4[1], InMatrix4[0]);
} else {
OutEuler.x = Math.atan2(-InMatrix4[9], InMatrix4[5]);
OutEuler.y = Math.atan2(-InMatrix4[2], cy);
OutEuler.z = 0;
}
}