标签:gravity 分类 意图 fan data 通过 飞机 变化 传感器
什么是陀螺仪?
陀螺仪又叫角速度传感器,是不同于加速度计(G-sensor)的,他的测量物理量是偏转、倾斜时的转动角速度。在手机上,仅用加速度计没办法测量或重构出完整的3D动作,测不到转动的动作的,G-sensor只能检测轴向的线性动作。但陀螺仪则可以对转动、偏转的动作做很好的测量,这样就可以精确分析判断出使用者的实际动作。而后根据动作,可以对手机做相应的操作![百度百科]
陀螺仪的分类
陀螺仪的作用
手机陀螺仪的作用
deviceorientation事件
先来个激发兴趣的例子:根据手机旋转移动而变化的骰子
deviceorientation事件:是在加速计检测到设备方向变化时在window对象上触发,不过,deviceorientation事件的意图是告诉开发人员设备在空间中朝向哪儿,而不是如何移动
三维空间中xyz三轴定位:
为了方便说明:引入三轴实际旋转手势表示图,经过真机测试,所有轴都是按照逆时针旋转
事件对象包含的属性:
手机上的指南针,其实就是指北针,ios端使用alpha角不对,应该使用webkitCompassHeading来获得真实的旋转角度,真机测试的时候发现使用alpha角,进入界面时候,手机顶部方向对着的方位默认为正北,这明显是不对的;安卓端使用alpha是对的,当然也不支持webkitCompassHeading;W3C上还有关于罗盘航向的计算公式等相关信息和资料,对于这个属性的使用和探索到目前的位置暂时可以了
devicemotion事件
devicemotion事件是要告诉开发人员设备什么时候移动,而不仅仅是设备方向如何改变。如:检测设备是不是正在往下掉、检测设备是不是被走着的人拿在手里
事件对象包含4个属性:
摇一摇实际例子:
<script>
if (window.DeviceMotionEvent) {
window.addEventListener(‘devicemotion‘, deviceMotionHandler, false);
}
var speed = 30; //speed
var x = y = z = lastX = lastY = lastZ = 0;
function deviceMotionHandler(eventData) {
var acceleration = eventData.accelerationIncludingGravity;
x = acceleration.x;
y = acceleration.y;
z = acceleration.z;
if (Math.abs(x - lastX) > speed || Math.abs(y - lastY) > speed || Math.abs(z - lastZ) > speed) {
//简单的摇一摇触发代码
alert(‘摇一摇成功‘);
}
lastX = x;
lastY = y;
lastZ = z;
}
</script>
说明:当xyz任意方向上的加速大大于30(任意设置,设置大一点能治肩周炎,哈哈)的时候,触发成功
标签:gravity 分类 意图 fan data 通过 飞机 变化 传感器
原文地址:http://www.cnblogs.com/liu-fei-fei/p/7851457.html