Es klingt, als sollten Sie die Euler-Winkel extrahieren, dann 3 neue Quaternionen erstellen und diese dann in der richtigen Reihenfolge erneut kombinieren, um wieder zur ursprünglichen Quaternion zu gelangen.
This PDF has formulas für die manuelle Konvertierung zwischen Euler und Quaternion. Die Formeln funktionieren im YPR-Format und nicht im RPY. Kannst du sie benutzen?
Hier sind sie in C implementiert sind:
/* 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)));
Das klingt wie eine Frage besser geeignet für http://math.stackexchange.com/ als eine Programmierung Frage Website. – mituw16
Gibt es eine Möglichkeit, das Q dann zu übertragen, da diese beide Stack-Exchange-Websites sind? – simplename
Konvertieren Sie es einfach in Euler Angels Darstellung – minorlogic