오일러 각을 추출한 다음 3 개의 새로운 쿼터니언을 생성 한 다음 올바른 순서로 다시 결합하여 원래의 쿼터니언에 다시 도달해야하는 것처럼 들립니다.
This PDF has formulas 오일러와 쿼터니언을 수동으로 변환합니다. 수식은 RPY 대신 YPR 형식으로 작동합니다. 그들을 사용할 수 있습니까? 여기에 그들이 C에서 구현
:
/* euler_2_quaternion_ZYX */
quat->w = cos(az/2.0f) * cos(ay/2.0f) * cos(ax/2.0f) + sin(az/2.0f) * sin(ay/2.0f) * sin(ax/2.0f);
quat->x = cos(az/2.0f) * cos(ay/2.0f) * sin(ax/2.0f) - sin(az/2.0f) * sin(ay/2.0f) * cos(ax/2.0f);
quat->y = cos(az/2.0f) * sin(ay/2.0f) * cos(ax/2.0f) + sin(az/2.0f) * cos(ay/2.0f) * sin(ax/2.0f);
quat->z = sin(az/2.0f) * cos(ay/2.0f) * cos(ax/2.0f) - cos(az/2.0f) * sin(ay/2.0f) * sin(ax/2.0f);
/* quaternion_2_euler_ZYX */
float qx, qy, qz, qw;
qw = quat->w;
qx = quat->x;
qy = quat->y;
qz = quat->z;
*az = atan2(qy * qz + qw * qx, 0.5f - ((qx * qx) + (qy * qy)));
*ay = asin(-2.0f * ((qx * qz) - (qw * qy)));
*ax = atan2(((qx * qy) + (qw * qz)), 0.5f - ((qy * qy) + (qz * qz)));
이것은 프로그래밍 질문 사이트가 아닌 http://math.stackexchange.com/ 더 적합 질문처럼 들린다. – mituw16
둘 다 스택 교환 웹 사이트이기 때문에 Q를 전송할 방법이 있습니까? – simplename
그냥 오일러로 변환 천사 표현 – minorlogic