Android Sensors (3) 传感器坐标系统

 

传感器坐标系统

  

  通常,sensor framework使用一个标准的三轴坐标系统来表达数值。

  对于大多数传感器来说,坐标系统是相对于设备屏幕来说的。

  当一个设备被放在其默认的方向上时,X轴是水平指向右的,Y轴是垂直向上的,Z轴是指向屏幕正面之外的,即屏幕背面是Z的负值。

  如图:

 

  这个坐标系被下面的传感器所使用:

  

  比较重要的一点就是,在屏幕方向改变的时候,坐标系中的轴是不会交换的。

  即,当设备移动的时候传感器的坐标系不会改变。这一点和OpenGL坐标系统一样。

  需要明白的另一点是,你不能假设设备的自然(默认)方向是竖直的(portrait),自然方向对于很多的平板设备来说是横向的(landscape)。

  坐标系永远是基于设备的自然方向的。

  最后一点,如果你的应用需要将传感器数据和屏幕显示匹配:

  你需要使用 getRotation()方法来决定屏幕的旋转值,然后使用 remapCoordinateSystem() 方法将传感器坐标映射到屏幕坐标上。

  即便你的manifest只指定了横向显示,你也需要做这些。

 

  如果想知道更多关于传感器坐标系统的信息,包括如何处理屏幕旋转,可以看看 One Screen Turn Deserves Another

  有一些传感器和方法使用相对于世界的参考帧的坐标系。

  这些传感器和方法返回的数据是反应设备运动或设备相对于地球的位置的信息。更多信息,请见getOrientation() 方法,getRotationMatrix() 方法,Orientation Sensor, 和 Rotation Vector Sensor

 

参考资料

  API Guides:Sensors Overview

  http://developer.android.com/guide/topics/sensors/sensors_overview.html

posted @   圣骑士wind  阅读(4798)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示