0

如何从欧拉坐标 E1 = (x1, y1, z1, yaw1, pitch1, roll1) 转换为 E2 = (x2, y2, z2, yaw2, pitch2, roll2) 其中 x, y, z 是一个点的坐标,并且偏航,俯仰,滚动以原点为原点的矢量的方向/方向。yaw 围绕 y,pitch 围绕 x,roll 围绕 z。它们按该顺序执行。偏航 0 垂直于平面 xy(与 E1 中的 z 相反,等于 E2 中的 z)。

E1 使用右手空间,E2 使用左手空间。两者具有相同的原点,y(顶部)和 z(进入屏幕)的方向相同。它们的区别在于 x 位于 E1 的左侧和 E2 的右侧。它们的正转方向也不同。

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

4

1 回答 1

0

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

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

其中 Point6DoF 是保存位置和欧拉角的类。

于 2010-06-17T22:47:51.367 回答