1.android 如何定义坐标系?x, y z 轴的。
x轴的方向是从左到右沿着屏幕的水平方向。如果手机不是方形的,短边需要水平放置,长边需要垂直放置。
Y轴的方向是从屏幕的左下角沿着屏幕的垂直方向指向屏幕的顶部。
把手机放在桌子上,z轴的方向是从手机指向天空。
2.方向传感器 在方向传感器中values变量的三个值都表示度数,其含义如下:
values[0]:该值表示方向,即手机绕Z轴旋转的角度。0表示北(North);90表示东(East);180表示南(South);270表示西(West)。如果values[0]值正好是这四个值,手机是水平放置的,说明这四个方向就在手机前面。电子罗盘可以利用这一特性来实现,实例76将详细介绍电子罗盘的实现过程。
values[1]:该值表示倾斜或手机翘曲。当手机绕X轴倾斜时,该值发生变化。values[1]值范围为-180≤values[1]≤180。
假设把手机屏幕放在桌子上,如果桌子完全水平,values[1]值应为00(因为绝对水平的桌子很少,所以值很可能不是0,但一般是-5和5之间的一定值)。然后从手机顶部抬起,直到手机沿X轴旋转180度(屏幕水平放在桌面上)。在这个旋转过程中,values[1]会在0到180之间变化,也就是说,从手机顶部抬起时,values[1]在等于-180之前,值会逐渐变小。从手机底部抬起,直到手机沿X轴旋转180度values[1]会在0到180之间发生变化。也就是values在等于180之前,[1]值会逐渐增加。可以利用values[1]以及下面要介绍的内容values测量桌子等物体的倾斜度。
values[2]:表示手机沿Y轴滚动。取值范围是-90≤values[2]≤90。假设将手机屏幕朝上水平放在桌面上,这时如果桌面是平的,values[2]值为0。逐渐抬起手机左侧时,values[2]值逐渐变小,直到手机垂直于桌面,此时values[2]值为-90。逐渐抬起手机右侧,values[2]值逐渐增加,直到手机垂直于桌面,此时values[2]值为90。在垂直位置继续向右或向左滚动,values[2]的值会继续在-90至90之间变化。
3.加速传感器该传感器的values变量的三个元素值分别表示X、Y、Z轴的加速值。例如,桌面上的手机从左到右移动,values[0]为负值;从右向左移动,values[0]为正值。
4.重力传感器加速度传感器的类型是常量Sensor.TYPE_GRAVITY。同一套坐标系用于重力传感器和加速度传感器。values数组中的三个元素分别表示X、Y、Z轴的重力。
5.陀螺仪传感器陀螺仪传感器的常量类型是Sensor.TYPE_GYROSCOPE。values数组三个元素的含义如下:
values[0]:延长X轴旋转的角速。
values[1]:延长Y轴旋转的角速。
values[2]:延Z轴旋转的角速。
当手机逆时针旋转时,角速为正,顺时针旋转时,角速为负。陀螺仪传感器通常用于计算手机旋转的角度。
近程传感器(Sensor.TYPE_PROXIMITY)
线性加速度传感器(Sensor.TYPE_LINEAR_ACCELERATION)
旋转向量传感器(Sensor.TYPE_ROTATION_VECTOR)
磁场传感器(Sensor.TYPE_MAGNETIC_FIELD)
压力传感器(Sensor.TYPE_PRESSURE)
温度传感器(Sensor.TYPE_TEMPERATURE)
======================================
陀螺仪的优点在于测量设备本身的旋转运动。更擅长设备本身的运动。但设备的方向无法确定。 加速计的优点在于测量设备的应力。对设备相对外部参考物(比如,地面)的运动更擅长。但与地面摆放姿势相比,用于测量设备的精度不高。 磁力计的优点在于定位设备的方向。当前设备与东南西北四个方向的夹角可以测量。 举几个例子: 陀螺仪对设备旋转角度的检测是瞬时而准确的,可以满足一些需要高分辨率和快速反应的应用,如FPS瞄准游戏。而且陀螺仪可以配合加速计,没有卫星 陀螺仪的经典应用是在网络的情况下导航。加速度计可用于具有固定重力参考坐标系、线性或倾斜运动但旋转运动限制在一定范围内的应用。同时处 理直线运动和旋转运动时,需要将加速度与陀螺仪计相结合。如果你还想让设备在运动时不迷路,加上磁力计。 对于发射的导弹,如果要准确跟踪和调整导弹轨道,以下数据是必不可少的: GPS定位它的位置 加速计测量当前加速度 磁力计确定导弹头的方向(只能知道东南西北四个方向的夹角),陀螺仪知道导弹的角速。这两种仪器的结合可以确定导弹的准确三维运动方向。 加速计的结果是XYZ三个值代表三个方向的加速度。关于XYZ以下是三值介绍: android 重力感应与屏幕旋转关系 http://blog.csdn.net/lzx_bupt/archive/2010/04/20/5507165.aspx
采用重力加速度感应控制屏幕旋转是最理想的。
不方便方便,简单来说:重力加速度感应可以想象成坐标系中三个方向的小球加速度。总是以手机屏幕为准,不以外界为准。手机水平放置,y轴向上,x轴向右,z轴向外。这和高数坐标系一样。
注:您移动手机反映在坐标系上,您移动坐标系远点(旋转)
1. Accelrator的x,y,z轴的正负变化:
当手机屏幕向上水平放置时: (x,y,z) = (0, 0, -9.81)
手机顶部抬起时: y而且是负值
手机底部抬起时: y增加,为正值
手机右侧抬起时: x而且是负值
手机左侧抬起时: x增加,为正值
2. Accelratorz轴变化:
手机屏幕向上水平放置时,z= -9.81
垂直放置手机屏幕时, z= 0
当手机屏幕向下水平放置时,z= 9.81
3. 默认情况下,默认情况下,屏幕竖切换
当y变成-5时, 将手机画面切换成垂直
当x变为-5时, 手机画面切换为横向
4.您可以根据需要设置您想要的旋转阈值
===================================== 可以用加速计和磁力计计算orientation(方位计),orientation涉及三个概念: Roll:左右倾斜角度,也叫滚转角 http://baike.baidu.com/view/1769672.htm Pitch:前后倾斜,又称俯仰角 http://baike.baidu.com/view/3832041.htm Yaw:左右摇摆,也叫偏航角http://baike.baidu.com/view/1769448.htm
转载自http://blog.163.com/sunshine_linting/blog/static/448933232012111102041393/