Iphone 根据横摇、俯仰和偏航值创建C姿态旋转矩阵

Iphone 根据横摇、俯仰和偏航值创建C姿态旋转矩阵,iphone,matrix,rotation,core-motion,pitch,Iphone,Matrix,Rotation,Core Motion,Pitch,我试图从横摇、俯仰和偏航值中得到一个(苹果风格,Cmatitude)旋转矩阵。有人知道这种转换是如何工作的吗 例如: 滚动:1.01315, 音高:1.54177和 偏航:-0.361097 应产生此旋转矩阵: 谢谢 我认为您可以通过CATTransform3D实现这一点 您将使用以下两个调用: CATransform3D CATransform3DMakeRotation (CGFloat angle, CGFloat x, CGFloat y, CGFloat z); CATransfor

我试图从横摇、俯仰和偏航值中得到一个(苹果风格,Cmatitude)旋转矩阵。有人知道这种转换是如何工作的吗

例如:

滚动:1.01315, 音高:1.54177和 偏航:-0.361097

应产生此旋转矩阵:


谢谢

我认为您可以通过CATTransform3D实现这一点

您将使用以下两个调用:

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);
您的变换现在将保留您要查找的矩阵