将四元数从右手坐标系转换为左手坐标系

Pol*_*hic 9 math 3d graphics

我的3D程序,对象的旋转由四元数表示[0.130526, 0.0, 0.0, 0.991445].该程序使用右手坐标系,Z轴朝上(如3ds max):

在此输入图像描述

另一方面,我的应用程序使用左手坐标系,Y轴向上:

在此输入图像描述

如何将四元数从一个坐标系转换为另一个坐标系,并考虑哪个轴是向上的?

aka*_*ice 12

围绕轴(u,v,w)的角度x的旋转可以由具有实部cos(x/2)和虚部sin(x/2)*(u,v,w)的四元数表示.

如果原始三面体中的轴坐标为(u,v,w),则它们将在您的三面体中为(u,w,v).

因此,如果原始四元数是(a,b,c,d) - a + ib + jc + kd - 四元数必须转换为三面体中的(a,b,d,c).

编辑

但由于你的三面体是左撇子,角度也必须反转,所以最终可以用你的三面体中的四元数(a,-b,-d,-c)表示相同的旋转.