1
回転した行列から角度を取得する方法を知りたいのですが、どうすれば計算できますか?私はglm C++を使用しています。glmを使用して回転行列から角度を取得しますか?
たとえば、 この行列から角度を求めるにはどうすればよいですか?
[-0.01458][-2.26652][0][0]
[-1.27492][-0.02596][0][0]
[ 0 ][ 0 ][1][0]
[ x ][ y ][z][1]
回転した行列から角度を取得する方法を知りたいのですが、どうすれば計算できますか?私はglm C++を使用しています。glmを使用して回転行列から角度を取得しますか?
たとえば、 この行列から角度を求めるにはどうすればよいですか?
[-0.01458][-2.26652][0][0]
[-1.27492][-0.02596][0][0]
[ 0 ][ 0 ][1][0]
[ x ][ y ][z][1]
これは、Z軸を中心に回転した単位行列のように見えます。それは常にそうなら、あなたは最初の列の最初の2つの要素にglm::atan機能を適用することにより、バックの角度を取得することができます:
float get_angle_in_rad(const glm::mat4 &matrix) {
return glm::atan(matrix[0][1], matrix[0][0]);
}
説明のためRotation matrixを参照してください。
行列がZ軸回りの回転よりも複雑な変換を表す場合、この関数が返す値は偽になります。ユースケースに応じて、変換行列に加えて、オイラー回転角を別々に保つことができます。