陀螺仪属性介绍和实战

p.p1 { margin: 0.0px 0.0px 12.8px 0.0px; line-height: 18.0px; font: 19.2px "PT Sans"; color: #000000 }
p.p3 { margin: 0.0px 0.0px 13.9px 0.0px; line-height: 18.0px; font: 16.8px "PT Sans"; color: #000000 }
p.p4 { margin: 0.0px 0.0px 12.0px 0.0px; line-height: 18.0px; font: 12.0px ".PingFang SC"; color: #000000 }
p.p6 { margin: 0.0px 0.0px 12.0px 0.0px; line-height: 18.0px; font: 12.0px ".PingFang SC"; color: #0000ee }
p.p7 { margin: 0.0px 0.0px 12.0px 0.0px; line-height: 18.0px; font: 12.0px ".PingFang SC Semibold"; color: #000000 }
p.p8 { margin: 0.0px 0.0px 12.0px 0.0px; line-height: 18.0px; font: 12.0px ".PingFang SC"; color: #000000; min-height: 14.0px }
p.p9 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 18.0px; font: 12.0px Courier; color: #000000 }
p.p10 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 18.0px; font: 12.0px Courier; color: #000000; min-height: 14.0px }
li.li2 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 18.0px; font: 12.0px ".PingFang SC"; color: #0000ee }
li.li5 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 18.0px; font: 12.0px ".PingFang SC"; color: #000000 }
span.s1 { }
span.s2 { }
span.s3 { text-decoration: underline }
span.s4 { color: #000000 }
span.s5 { text-decoration: underline; color: #0000ee }
span.s6 { font: 12.0px ".PingFang SC" }
ol.ol1 { list-style-type: decimal }
ul.ul1 { list-style-type: disc }
ul.ul2 { list-style-type: circle }

  • 陀螺仪属性介绍和实战
    • 什么是陀螺仪?
    • 陀螺仪的分类
    • 陀螺仪的作用
    • 手机陀螺仪的作用
    • deviceorientation事件
    • devicemotion事件

什么是陀螺仪?

陀螺仪又叫角速度传感器,是不同于加速度计(G-sensor)的,他的测量物理量是偏转、倾斜时的转动角速度。在手机上,仅用加速度计没办法测量或重构出完整的3D动作,测不到转动的动作的,G-sensor只能检测轴向的线性动作。但陀螺仪则可以对转动、偏转的动作做很好的测量,这样就可以精确分析判断出使用者的实际动作。而后根据动作,可以对手机做相应的操作![百度百科]

陀螺仪的分类

  1. 压电陀螺仪
  2. 微机械陀螺仪
  3. 光纤陀螺仪
  4. 激光陀螺仪

陀螺仪的作用

  1. 陀螺仪器能提供准确的方位、水平、位置、速度和加速度等信号,以便驾驶员或用自动导航仪来控制飞机、舰船或航天飞机等航行体按一定的航线飞行。
  2. 作为稳定器,陀螺仪器能使列车在单轨上行驶,能减小船舶在风浪中的摇摆,能使安装在飞机或卫星上的照相机相对地面稳定等等。
  3. 作为精密测试仪器,陀螺仪器能够为地面设施、矿山隧道、地下铁路、石油钻探以及导弹发射井等提供准确的方位基准。

手机陀螺仪的作用

  1. 通过陀螺仪,能够对手机的偏转角度、速度、时间等进行测量,从而实现对游戏视野的变化和车辆方向速度的改变,让游戏的体验有了质的提升!
  2. 能够帮助摄像头进行防抖,通俗来说就是当你按下快门的那一刻,陀螺仪检测手机抖动的角度,然后根据角度来算出镜头模组需要补偿的距离,让镜头通过反向运动来抵消手机的抖动,从而实现镜头在拍摄的那一刻的绝对静止,提高成片率。
  3. 辅助GPS导航,在某些gps信号弱或者无信号的地方,比如隧道等,手机就可以根据之前定位的地点和陀螺仪检测的运动速度和时间和方向,推算出当前的位置,来达到暂时定位的目的。

deviceorientation事件

先来个激发兴趣的例子:根据手机旋转移动而变化的骰子

deviceorientation事件:是在加速计检测到设备方向变化时在window对象上触发,不过,deviceorientation事件的意图是告诉开发人员设备在空间中朝向哪儿,而不是如何移动

三维空间中xyz三轴定位:

  1. x轴方向是从左往右
  2. y轴方向是从下往上
  3. z轴方向是从后往前

为了方便说明:引入三轴实际旋转手势表示图,经过真机测试,所有轴都是按照逆时针旋转

事件对象包含的属性:

  1. alpha:围绕Z轴旋转,Y轴的度数差;范围介于:0-360之间的浮点数
  2. beta:围绕X轴旋转,Z轴度数差;范围介于:-180度-180度之间的浮点数
  3. gamma:围绕Y轴旋转,Z轴度数差;范围介于:-90度-90度之间的浮点数
  4. absolute:布尔值,表示设备是否返回一个绝对值
  5. compassCalibrated:布尔值,表示设备的指南针是否校准过
  6. webkitCompassHeading:与正北方向的角度差值。正北为0度,正东为90度,正南为180度,正西为270度。因为0度是正北,所以叫指北针,不是指南针
  7. webkitCompassAccuracy:指北针的精确度,表示偏差为正负多少度。一般是10

指北针实例

手机上的指南针,其实就是指北针,ios端使用alpha角不对,应该使用webkitCompassHeading来获得真实的旋转角度,真机测试的时候发现使用alpha角,进入界面时候,手机顶部方向对着的方位默认为正北,这明显是不对的;安卓端使用alpha是对的,当然也不支持webkitCompassHeading;W3C上还有关于罗盘航向的计算公式等相关信息和资料,对于这个属性的使用和探索到目前的位置暂时可以了

devicemotion事件

devicemotion事件-实际例子

devicemotion事件是要告诉开发人员设备什么时候移动,而不仅仅是设备方向如何改变。如:检测设备是不是正在往下掉、检测设备是不是被走着的人拿在手里

事件对象包含4个属性:

  1. acceleration:一个包含x、y、z属性的对象,在不考虑重力的情况下,告诉开发者在每个方向上的加速度
  2. accelerationIncludingGravity:一个包含x、y、z属性的对象,在考虑z轴自然重力加速度的情况下,告诉开发者每个方向上的加速度
  3. interval:以毫秒表示的时间值,必须在另一个devicemotion事件触发前传入。这个值在每个事件是一个常量
  4. rotationRate:一个包含表示方向的alpha、beta、gamma属性的对象

摇一摇实际例子:

<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(任意设置,设置大一点能治肩周炎,哈哈)的时候,触发成功

时间: 2024-10-09 12:59:58

陀螺仪属性介绍和实战的相关文章

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

《iOS 7 应用开发实战详解》

<iOS 7 应用开发实战详解> 基本信息 作者: 朱元波    管蕾 出版社:人民邮电出版社 ISBN:9787115343697 上架时间:2014-4-25 出版日期:2014 年5月 开本:16开 页码:382 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > iPhone 更多关于>>><iOS 7 应用开发实战详解> 编辑推荐 新版本 全面讲解了iOS 7开发的各种技术 热门技术 基本控件.数据存储.多场景处理.界

iOS学习笔记34-加速计和陀螺仪

一.CoreMotion框架介绍 我们知道有一些iOS的应用,会有一些特殊的要求,比如: 1. 电子罗盘指南针之类的应用:让我们知道方向. 2. 运动类型软件:让我们知道我们跑步多少公里. 3. 社交软件中的摇一摇功能. 4. 游戏中扮演角色类中根据设备的晃动等进行操作. 其实,他们多半是使用了iOS中的一个核心运动框架CoreMotion.framework 使用iOS提供给我们的CoreMotion框架,主要是为了访问加速度计和陀螺仪的相关数据. 它不仅仅提供给你获得实时的加速度值和旋转速度

理解手机中的感应器模块:重力感应/光线感应/电子罗盘/陀螺仪模块功能

在用js里的deviceorientation事件写翻转手机屏幕的demo,iphone和同事的安卓都可以,就我的酷派f1不行. 记得以前也玩过重力感应的游戏,于是上网查了一下酷派大神f1的感应器模块配置参数: 看完后知道orientationchange翻转屏幕事件应该用到了重力感应,deviceorientation应该跟陀螺仪有关. 网上找了点这些模块的说明,分享给大家: 重力感应 重力感应器算出现比较早的手机传感器.现在,大多数主流智能机都装有这个配置.在iOS.Android平台中,很

极客学院Web前端开发技术实战视频教程 初级入门+高级实战++专家课程+面试指导

===============课程目录=============== ├<初级中级>│  ├<1. HTML5开发前准备>│  │  ├1.HTML5开发前准备.mp4│  │  └2.开发前的准备-快捷键.mp4│  ├<10. React.js>│  │  ├React.js简介.txt│  │  ├<1.React 概述>│  │  │  ├React 开发环境搭建.mp4│  │  │  ├编写第一个 React 程序.mp4│  │  │  └什么

《机器学习实战》-机器学习基础

目录 机器学习基础 什么是机器学习 机器学习 应用场景 海量数据 机器学习的重要性 机器学习的基本术语 监督学习和非监督学习 监督学习:supervised learning 非监督学习:unsupervised learning 机器学习工具介绍 Python 非 Python NumPy 函数库基础 测试 Numpy 库 测试 NumPy 库代码整合 总结 机器学习基础 什么是机器学习 机器学习的基本术语 监督学习和非监督学习 机器学习工具介绍 总结 人工智能的核心是机器学习,机器学习的本质

web前端入门到实战:HTML中img标签的src属性绝对路径问题解决办法,完全解决!

HTML中img标签的src属性绝对路径问题解决办法,完全解决 需求:有时候自己的项目img的src路径需要用到本地某文件夹下的图片,而不是直接使用项目根目录下的图片. 场景:eclipse,tomcat,html,img,src,java 注意:不需要寻找tomcat真实路径下的server.xml去修改,这个地方不需要修改. 解决办法:1.在eclipse中找到你的项目发布的tomcat服务器,然后找到左侧Servers下对应的你的Tomcat服务器中的server.xml文件,如下图所示:

jmeter性能测试基础实战

一.前言 “纸上得来终觉浅,绝知此事要躬行.”学习了理论知识,要实操起来.本文主要介绍jmeter性能测试基础实战. 二.Jmeter 性能测试基础实战 1.测试需求:测试20个用户访问https://www.cnblogs.com/huainanhai/ 在负载达到30 QPS时的平均响应时间. QPS: Query Per Second每秒查询率:是一台查询服务器每秒能够处理的查询次数.在因特网上,作为域名系统服务器的性能经常用每秒查询率来衡量. 2.测试步骤: 第一步:添加线程组 线程组主

【机器学习实战】Machine Learning in Action 代码 视频 项目案例

MachineLearning 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远 Machine Learning in Action (机器学习实战) | ApacheCN(apache中文网) 视频每周更新:如果你觉得有价值,请帮忙点 Star[后续组织学习活动:sklearn + tensorflow] ApacheCN - 学习机器学习群[629470233] 第一部分 分类 1.) 机器学习基础 2.) k-近邻算法 3.) 决策树 4.) 基于概率论的分类方法:朴素