I'm sure this is simple, but have not had any success researching this and getting a successful answer.
I have rotations defined as three euler angles, in XYZ order, right-handed.
I have to convert to a left-handed system of Euler XYZ. How do I adjust these angles to be correct for a left-handed system?
Also if anyone has any samples, so I can ensure doing it right, such as what does 90 -45 160 or 90 40 30 go to.
Notation:
x,y,z - old system basis
x',y',z' - new system basis
Transformation between systems:
x' = x
y' = y
z' = -z
Euler angles:
EulerXYZ = (alfa,beta,gamma)
EulerXYZ' = (alfa',beta',gamma') = ?
Now I can think of two ways to solve it:
angle' = angle
otherwise is angle' = -angle
In the picture above #1
is right-handed and #2
is left-handed system (the red line always passes over the black line).
Looking at the picture we can conclude that
alfa',beta',gamma' = -alfa,-beta,+gamma
Conversion can be calculated using geometric algebra. It is somehow similar to quaternions but rotation takes place "in oriented plane" instead of "around axis".
Oriented plane is defined by product of two vectors u^v
and have following property: -(u^v) = (-u)^v = u^(-v)
Rotation is defined by rotor R(angle, plane)
and R(angle, -plane) = R(-angle, plane)
Now:
R(alfa, y^z) = R(-alfa, -(y^z)) = R(-alfa, y^(-z)) = R(-alfa, y'^z')
R(beta, x^z) = R(-beta, x'^z')
R(gamma, x^y) = R(+gamma, x'^y')
so
alfa',beta',gamma' = -alfa,-beta,+gamma