0

我正在尝试从滚动、俯仰和偏航值中获取(Apple 风格,CMAttitude)旋转矩阵。有人知道这种转换是如何工作的吗?

例子:

滚动:1.01315,俯仰:1.54177 和偏航:-0.361097

应该导致这个旋转矩阵:

在此处输入图像描述

谢谢!

4

1 回答 1

0

我认为您可以使用 CATransform3D 实现这一目标。

您将使用这两个调用:

CATransform3D CATransform3DMakeRotation (CGFloat angle, CGFloat x, CGFloat y, CGFloat z);
CATransform3D CATransform3DRotate (CATransform3D t, CGFloat angle, CGFloat x, CGFloat y, CGFloat z)

您需要弄清楚滚动、俯仰和偏航如何与您的坐标系对应(通常是 x、y、z,但也可以是 z、x、y)

然后做一个这样的组合:

CATransform3D transform = CATransform3DMakeRotation(anglex, 1.0, 0.0, 0.0);
transform = CATransform3DRotate(transform, angley, 0.0, 1.0, 0.0);
transform = CATransform3DRotate(transform, anglez, 0.0, 0.0, 1.0);

您的变换现在将保存您正在寻找的矩阵。

于 2013-11-02T20:59:06.663 回答