gpt4 book ai didi

ios - 从 CMRotationMatrix 获取俯仰、偏航、滚动

转载 作者:可可西里 更新时间:2023-11-01 03:04:44 38 4
gpt4 key购买 nike

我有一个 CMRotationMatrix *rot,我想从矩阵中获取俯仰、偏航和滚动。我有什么想法可以做到这一点吗?

谢谢

最佳答案

使用四元数比使用欧拉角更好....滚转、俯仰和偏航值可以使用以下公式从四元数导出:

roll  = atan2(2*y*w - 2*x*z, 1 - 2*y*y - 2*z*z)
pitch = atan2(2*x*w - 2*y*z, 1 - 2*x*x - 2*z*z)
yaw = asin(2*x*y + 2*z*w)

它可以实现为:

CMQuaternion quat = self.motionManager.deviceMotion.attitude.quaternion;
myRoll = radiansToDegrees(atan2(2*(quat.y*quat.w - quat.x*quat.z), 1 - 2*quat.y*quat.y - 2*quat.z*quat.z)) ;
myPitch = radiansToDegrees(atan2(2*(quat.x*quat.w + quat.y*quat.z), 1 - 2*quat.x*quat.x - 2*quat.z*quat.z));
myYaw = radiansToDegrees(asin(2*quat.x*quat.y + 2*quat.w*quat.z));

其中 radianstoDegrees 是一个预处理器指令,实现为:

#define radiansToDegrees(x) (180/M_PI)*x

这样做是为了将公式给出的弧度值转换为度数。

有关转换的更多信息可在此处找到: tinkerforge在这里:Conversion between Quaternions and Euler angles .

关于ios - 从 CMRotationMatrix 获取俯仰、偏航、滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9478630/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com