17 lines
682 B
Mathematica
Raw Permalink Normal View History

2025-04-16 20:15:33 +08:00
function [eul_312, eul_321] = m2eul(Cb2n)
% 姿
% m2att
%
% Input: 姿Cb2n: b->n
% Outputs:
% eul_312: 312(Z->X->Y): att = [pitch(X) roll(Y) yaw(Z)]
% eul_321: 321(Z->Y->X): att = [roll(X) pitch(Y) yaw(Z)]
eul_312 = [ asin(Cb2n(3,2));
atan2(-Cb2n(3,1),Cb2n(3,3));
atan2(-Cb2n(1,2),Cb2n(2,2)) ];
if nargout==2 % dual Euler angles
eul_321 = [ atan2(Cb2n(3,2),Cb2n(3,3));
asin(-Cb2n(3,1));
atan2(Cb2n(2,1),Cb2n(1,1)) ];
end