Hello!
I believe that there may be an error in the Euler angle convention in Blender. Specifically, when creating a new object in Blender and assigning rotations using the N panel, if we assign a rotation of (90, 0, 0)
in XYZ Euler, the resulting global matrix (which we’ll call Rx) for the object is
| 1, 0, 0, |
| 0, 0,-1, |
| 0, 1, 0 |
Similarly, if we assign a rotation of (0, 90, 0)
in XYZ Euler, the resulting global matrix (which we’ll call Ry) is
| 0, 0, 1, |
| 0, 1, 0, |
| -1, 0, 0 |
So far, this corresponds with the expected results.
However, the problem arises when we assign a rotation of (90, 90, 0)
in XYZ Euler from the N panel. The resulting global matrix (which we’ll call Rxy) is
| 0, 1, 0, |
| 0, 0,-1, |
| -1, 0, 0 |
when the expected result would be
Rx * Ry = | 0,0,1,|
| 1,0,0,|
| 0,1,0 |
given that XYZ Euler was selected in the panel.
This leads me to suspect that Blender is following the ZYX convention regardless of the selection made in the panel.
Can anyone confirm if this is a bug or if I am missing something?
PS: I have used the following pages to perform the calculations: