Math 如何改变坐标的惯用手?

Math 如何改变坐标的惯用手?,math,3d,euler-angles,Math,3d,Euler Angles,如何从Euler坐标转换 E1=x1、y1、z1、yaw1、俯仰1、滚转1 到E2=x2、y2、z2、yaw2、俯仰2、滚转2 其中x,y,z是点的坐标 和偏航、俯仰、滚动-原点为点的向量的方向/方向。 偏航绕y,俯仰绕x,滚转绕z。它们是按这个顺序执行的。偏航0垂直于平面xy,与E1中的z相对,等于E2中的z E1使用右手空格,E2使用左手空格。 两者具有相同的原点,y顶部和z进入屏幕的方向相同。 它们的差值为x,在E1上为左侧,在E2上为右侧。 它们的正旋转方向也不同 我有一个自定义类型来保

如何从Euler坐标转换 E1=x1、y1、z1、yaw1、俯仰1、滚转1 到E2=x2、y2、z2、yaw2、俯仰2、滚转2 其中x,y,z是点的坐标 和偏航、俯仰、滚动-原点为点的向量的方向/方向。 偏航绕y,俯仰绕x,滚转绕z。它们是按这个顺序执行的。偏航0垂直于平面xy,与E1中的z相对,等于E2中的z

E1使用右手空格,E2使用左手空格。 两者具有相同的原点,y顶部和z进入屏幕的方向相同。 它们的差值为x,在E1上为左侧,在E2上为右侧。 它们的正旋转方向也不同


我有一个自定义类型来保存标量表示,并从和转换为等效的WPF Matrix3d表示。

最后,这个解决方案对我有效:

Point6DoF right = new Point6DoF(
    -left.X, left.Y, left.Z,-left.Yaw, left.Pitch, -left.Roll)

其中Point6DoF是保持位置和Euler角的类。

通常,要将向量空间的任意基转换为另一个基,只需求解方程即可,感谢Johannes。我不是一个数学爱好者,这对我来说并不清楚。我随机尝试了一些组合。似乎这一个用于使用自定义Point6DoF类型将左手空间转换为WPF/右手空间,该类型包含一个3D点和一个3D观察方向:Point6DoF positionInRightHanded=新Point6DoF-X、Y、Z、-偏航、俯仰、-滚转。这对你有意义吗?