HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用CMDeviceMotion和CMAttitude隔离垂直或水平加速度大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图隔离垂直或水平加速度分量,假设设备方向可能会不断变化.

在具有陀螺仪数据和CMAttitude之前,这是不可能的,因为我们只有加速度数据.既然我们通过CMAttitude同时加速了userAcceleration和方向,那么似乎应该可以通过姿态数据调整加速度数据,以便隔离特定的加速度绝对方向.这与使用参帧略有不同,因为我期望设备方向不断变化.想想袖标等……就我而言,

无论设备方向如何变化,我都希望能够捕获严格垂直或严格水平的加速度值.这个的几何形状有点超出我的意见,我很欣赏一些建议.

解决方法

我不熟悉iOS API,但我可以给出数学答案.

>使用陀螺仪加速计传感器融合确定方向.我希望iOS有一个API,因为它相对复杂(如果不是让我们知道,我会详细说明).这似乎就是你所说的CMAttitude.方向应表示为四元数或矩阵,它表示固定参框架(最可能是东北向下,但它取决于API)与附加到设备的本地参框架之间的旋转.
>从加速度计读取的矢量(在本地参系中),并以与您的方向相反的旋转旋转它.旋转的反面是四元数共轭或矩阵转置.通过四元数乘法或矩阵乘法来旋转矢量.这为您提供了固定参系中的加速度矢量.
>固定参系中加速度的Z分量是垂直加速度. XY分量的范数(sqrt(x ^ 2 y ^ 2))是水平加速度.不要忘记从垂直加速度中减去重力.这又假设了一个东北向下参系,但大多数其他固定参系只需要您适当地交换X,Y,Z.

如果iOS具有正确的API,则实现应该是微不足道的.如果你有选择偏好四元数而不是矩阵,因为实现运行得更快.让我们知道怎么回事.

大佬总结

以上是大佬教程为你收集整理的ios – 使用CMDeviceMotion和CMAttitude隔离垂直或水平加速度全部内容,希望文章能够帮你解决ios – 使用CMDeviceMotion和CMAttitude隔离垂直或水平加速度所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。