# Solving for Euler Angles

I would like to determine Euler angles according to the following example.

My example:

I have the three vectors in an original set of axes:

r1e = {-0.517853, 0., -0.759239}
r2e = {-0.517853, 0., 0.759239}
r3e = {0.0647316, 0., 0.}


And after expressing them in a new reference frame they obtain the following components:

rt1e={0.310733, -0.358839, -0.786917}
rt2e={0.690333, 0.298661, 0.527983}
rt3e={-0.0625667, 0.00376111, 0.0161833}


In reality, I know the Euler angles to be $$(30,60,120)$$ degrees. How can I get Mathetmatica to give me this?

• Have you tried EulerAngles? – Henrik Schumacher Jan 6 '19 at 18:09
• That command won't work, as the rotation matrix itself is not known. Only the two vectors. – Spherical Cow Jan 6 '19 at 18:10
• In general, a rotation matrix is not uniquely defined by the action on a single vector... – Henrik Schumacher Jan 6 '19 at 18:12
• Fair enough, but in this case the problem has been constructed such that the three Euler angles are known to exist. The question specifically relates to why NSolve is not working. – Spherical Cow Jan 6 '19 at 18:14
• What I tried to say: If you prescribe a pair $u$ and $v$ of same length $\neq 0$ in $\mathbb{R}^3$, then there will be a one-parameter family of rotations (and thus a one-parameter family of Euler angles) that map $u$ to $v$. So, it is as it is: Your problem is underdetermined. – Henrik Schumacher Jan 6 '19 at 18:18

As noted, you can use FindGeometricTransform[] in tandem with EulerAngles[]:
r = {{-0.517853, 0., -0.759239}, {-0.517853, 0., 0.759239}, {0.0647316, 0., 0.}};