user2190126 -4 years ago 109

C++ Question

I want to know how to get the angle from a rotated matrix, how do I calculate that? I am using glm c++.

For example

how do I get the angle from this matrix using c++?

`[-0.01458][-2.26652][0][0]`

[-1.27492][-0.02596][0][0]

[ 0 ][ 0 ][1][0]

[ x ][ y ][z][1]

Recommended for you: Get network issues from **WhatsUp Gold**. **Not end users.**

Answer Source

This looks like an identity matrix that was rotated around Z axis. If that's always the case, you can get the angle back by applying glm::atan function on the first two elements of the first column:

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

See Rotation matrix for explanation.

Note that if the matrix represents more complicated tranformation than just rotation around Z axis, the value returned by this function will be bogus. Depending on your usecase you may want to keep the euler rotation angles separately, in addition to the transformation matrix.

Recommended from our users: **Dynamic Network Monitoring from WhatsUp Gold from IPSwitch**. ** Free Download**

Latest added