1
我想知道如何從旋轉後的矩陣得到角度,我該如何計算?我正在使用glm C++。使用glm獲取旋轉矩陣的角度?
例如 如何從這個矩陣使用C++獲得角度?
[-0.01458][-2.26652][0][0]
[-1.27492][-0.02596][0][0]
[ 0 ][ 0 ][1][0]
[ x ][ y ][z][1]
我想知道如何從旋轉後的矩陣得到角度,我該如何計算?我正在使用glm C++。使用glm獲取旋轉矩陣的角度?
例如 如何從這個矩陣使用C++獲得角度?
[-0.01458][-2.26652][0][0]
[-1.27492][-0.02596][0][0]
[ 0 ][ 0 ][1][0]
[ x ][ y ][z][1]
這看起來像一個圍繞Z軸旋轉的單位矩陣。如果總是這樣,你可以通過在第一列的前兩個元素應用glm::atan功能得到角回:
float get_angle_in_rad(const glm::mat4 &matrix) {
return glm::atan(matrix[0][1], matrix[0][0]);
}
的說明,請參見Rotation matrix。
請注意,如果矩陣表示比繞Z軸旋轉更復雜的轉換,則此函數返回的值將是假的。根據您的用例,除了變換矩陣之外,您可能需要單獨保留歐拉旋轉角度。