您的位置:首页 > 移动开发 > Android开发

关于Android Sensor的文章

2009-11-11 11:07 253 查看
Android 方向传感器 (Orientation Sensor)

Android 方向传感器的类型是 Sensor.TYPE_ORIENTATION

通过 android.hardware.SensorEvent 返回方向传感器值。

方向传感器返回值的单位是角度,有三个值分别是

values[0]: 方位角

values[1]: 倾斜角

values[2]: 旋转角

如同加速度传感器一样,首先Android中 x,y,z 定义是以水平放置在的手机的右下脚为参照系坐标原点(如下图)

x 方向就是手机的水平方向,右为正

y 方向就是手机的水平垂直方向,前为正

z 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负

坐标原点是手机屏幕的左下脚。

x<0 x>0
^
|
+-----------+--> y>0
| |
| |
| |
| | / z<0
| | /
| | /
O-----------+/
|[] [ ] []/
+----------/+ y<0
/
/
|/ z>0 (toward the sky)

O: Origin (x=0,y=0,z=0)

方向角的定义是手机y轴 水平面上的投影 与 正北方向的夹角。 (值得范围是 0 ~ 359 其中0=North, 90=East, 180=South, 270=West)

倾斜角的定义是手机y轴 与水平面的夹角 (手机z轴向y轴方向移动为正 ,值得范围是 -180 ~ 180)

旋转角的定义是手机x轴 与水平面的夹角 (手机x轴离开z轴方向为正, 值得范围是 -90 ~ 90)

============================================================================

Android 加速度传感器的类型是 Sensor.TYPE_ACCELEROMETER

通过 android.hardware.SensorEvent 返回加速度传感器值。

加速度传感器返回值的单位是加速度的单位 m/s^2(米每二次方秒),有三个方向的值分别是

values[0]: x-axis 方向加速度

values[1]: y-axis 方向加速度

values[2]: z-axis 方向加速度

其中x,y,z方向的定义是以水平放置在的手机的右下脚为参照系坐标原点(如下图)

x 方向就是手机的水平方向,右为正

y 方向就是手机的水平垂直方向,前为正

y 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负

x<0 x>0
^
|
+-----------+--> y>0
| |
| |
| |
| | / z<0
| | /
| | /
O-----------+/
|[] [ ] []/
+----------/+ y<0
/
/
|/ z>0 (toward the sky)

O: Origin (x=0,y=0,z=0)

需要注意的是,由于地球固有的重力加速度g (值为9.8 m/s^2),

因此现实中实际加速度值应该是 z方向返回值 - 9.8 m/s^2.

比如你以 2 m/s^2 的加速度将手机抛起,这时z方向的返回值应该是 11.8 m/s^2.

反之若以手机以2 m/s^2 的加速度坠落,则z方向的返回值应该是 7.8 m/s^2.

x,y方向则没有上述限制。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/stevenliyong/archive/2009/09/15/4555331.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: