iOS核心运动检测向前/向后倾斜
<p><p>我正在使用 iOS 核心运动框架来检测设备是向前还是向后倾斜。详情见图片:<a href="http://i.stack.imgur.com/2Ojw5.jpg" rel="noreferrer noopener nofollow">http://i.stack.imgur.com/2Ojw5.jpg</a> </p>
<p>使用音高值 a 可以检测到这种运动,但我无法区分前进和后退。</p>
<p>更多细节:</p>
<p>我尝试检测向前区域或向后区域是否有运动(向前和向后倾斜)(参见更新的草图)。</p>
<p>音高的问题在于,如果设备处于直立位置,它的起始值约为 1.6。当我将其向前或向后倾斜到水平药水时,该值会减小相同的值。同样的行为也适用于加速度计 y 值。</p>
<p>看起来我错过了整个核心运动的东西。任何想法</p>
<p>感谢基督徒</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>使用姿态俯仰,前倾和后倾是无法区分的。但是使用 <strong>四元数</strong>,您可以计算音高,如果您将弧度转换为度数,</p>
<ul>
<li>0 表示设备在其背面</li>
<li>90 表示它正在站立</li>
<li>180 表示它在脸上</li>
</ul>
<p>旋转的对面半球为 0 到 -180。代码如下:</p>
<pre><code>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)))
</code></pre></p>
<p style="font-size: 20px;">关于iOS核心运动检测向前/向后倾斜,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/20379830/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/20379830/
</a>
</p>
页:
[1]