如果我有一个简单的网页和脚本,看起来像这样:
我可以在移动版的Android Firefox中打开它,它会输出3个数字,看起来像下面这样:
当我旋转设备时,数字会根据旋转轴改变。我注意到“alpha”的值非常嘈杂——即使手机静止放在桌子上,它们也会不停地反弹,而其他两个则保持稳定。我明白“alpha”是我的航向。那么我很好奇,它是从指南针(有噪音问题)获取“alpha”值,而另外两个则来自陀螺仪吗?
另一个问题是,当我改变俯仰角时,由于某种原因航向也会改变,即使我实际上并没有改变航向。我只是好奇这是为什么,以及如何进行更正?
此外,由于陀螺仪测量的是角速度,所以我假设此事件侦听器会自动进行积分——积分算法是否和其他任何算法一样好?它是否使用加速度计来纠正漂移?
在这个Google技术讲座视频中,从15:00到19:00,演讲者谈到了通过使用加速度计来纠正陀螺仪固有漂移以及校准与重力相关的方向:http://www.youtube.com/watch?v=C7JQ7Rpwn2k 我该怎么做呢?
感谢任何人可能提供的见解。
<body>
<div id="alpha">a</div>
<div id="beta">b</div>
<div id="gamma">g</div>
</body>
<script>
window.addEventListener('deviceorientation', function(event) {
var alpha = event.alpha;
var beta = event.beta;
var gamma = event.gamma;
document.getElementById("alpha").innerHTML = alpha;
document.getElementById("beta").innerHTML = beta;
document.getElementById("gamma").innerHTML = gamma;
}, false);
</script>
我可以在移动版的Android Firefox中打开它,它会输出3个数字,看起来像下面这样:
89.256125
3.109375
0.28125
当我旋转设备时,数字会根据旋转轴改变。我注意到“alpha”的值非常嘈杂——即使手机静止放在桌子上,它们也会不停地反弹,而其他两个则保持稳定。我明白“alpha”是我的航向。那么我很好奇,它是从指南针(有噪音问题)获取“alpha”值,而另外两个则来自陀螺仪吗?
另一个问题是,当我改变俯仰角时,由于某种原因航向也会改变,即使我实际上并没有改变航向。我只是好奇这是为什么,以及如何进行更正?
此外,由于陀螺仪测量的是角速度,所以我假设此事件侦听器会自动进行积分——积分算法是否和其他任何算法一样好?它是否使用加速度计来纠正漂移?
在这个Google技术讲座视频中,从15:00到19:00,演讲者谈到了通过使用加速度计来纠正陀螺仪固有漂移以及校准与重力相关的方向:http://www.youtube.com/watch?v=C7JQ7Rpwn2k 我该怎么做呢?
感谢任何人可能提供的见解。