我正在使用 iOS 核心运动框架来检测设备是向前还是向后倾斜。详情见图片:http://i.stack.imgur.com/2Ojw5.jpg
使用音高值 a 可以检测到这种运动,但我无法区分前进和后退。
更多细节:
我尝试检测向前区域或向后区域是否有运动(向前和向后倾斜)(参见更新的草图)。
音高的问题在于,如果设备处于直立位置,它的起始值约为 1.6。当我将其向前或向后倾斜到水平药水时,该值会减小相同的值。同样的行为也适用于加速度计 y 值。
看起来我错过了整个核心运动的东西。任何想法
感谢基督徒
使用姿态俯仰,前倾和后倾是无法区分的。但是使用 四元数,您可以计算音高,如果您将弧度转换为度数,
旋转的对面半球为 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 |