2016-08-31 59 views
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] 

回答

2

這看起來像一個圍繞Z軸旋轉的單位矩陣。如果總是這樣,你可以通過在第一列的前兩個元素應用glm::atan功能得到角回:

float get_angle_in_rad(const glm::mat4 &matrix) { 
    return glm::atan(matrix[0][1], matrix[0][0]); 
} 

的說明,請參見Rotation matrix

請注意,如果矩陣表示比繞Z軸旋轉更復雜的轉換,則此函數返回的值將是假的。根據您的用例,除了變換矩陣之外,您可能需要單獨保留歐拉旋轉角度。