OStack程序员社区-中国程序员成长平台

标题: iOS核心运动检测向前/向后倾斜 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:36
标题: iOS核心运动检测向前/向后倾斜

我正在使用 iOS 核心运动框架来检测设备是向前还是向后倾斜。详情见图片:http://i.stack.imgur.com/2Ojw5.jpg

使用音高值 a 可以检测到这种运动,但我无法区分前进和后退。

更多细节:

我尝试检测向前区域或向后区域是否有运动(向前和向后倾斜)(参见更新的草图)。

音高的问题在于,如果设备处于直立位置,它的起始值约为 1.6。当我将其向前或向后倾斜到水平药水时,该值会减小相同的值。同样的行为也适用于加速度计 y 值。

看起来我错过了整个核心运动的东西。任何想法

感谢基督徒



Best Answer-推荐答案


使用姿态俯仰,前倾和后倾是无法区分的。但是使用 四元数,您可以计算音高,如果您将弧度转换为度数,

旋转的对面半球为 0 到 -180。代码如下:

func radiansToDegrees(_ radians: Double) -> Double {
    return radians * (180.0 / Double.pi)
}

let quat = motionData.attitude.quaternion
let qPitch = CGFloat(radiansToDegrees(atan2(2 * (quat.x * quat.w + quat.y * quat.z), 1 - 2 * quat.x * quat.x - 2 * quat.z * quat.z)))

关于iOS核心运动检测向前/向后倾斜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20379830/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4