关于getOrientation() 返回的三个坐标的角度问题,网友用实测的方式给出了以下答案
-
方向传感器返回的都是角度值,以度数为单位。
-
第一个角度:Azimuth (degrees of rotation around the z axis).范围 0-360度
手机水平放置,手机顶部指向正北时该角度为0,指向正东时为90度,指向正南时为180度,指向正西时为270度 -
第二个角度:Pitch (degrees of rotation around the x axis).范围 (负180——正180度)
手机水平放置,屏幕向上,手机顶部抬起绕X轴旋转,直到屏幕向下,角度从零变到-180。如果是手机底部抬起绕X轴旋转,直到屏幕向下,角度从0变到180度 -
第三个角度:Roll (degrees of rotation around the y axis)。范围 (负90——正90度)
手机水平放置,屏幕向上,手机左侧抬起绕Y轴旋转,直到与水平面垂直,角度从零变到-90。如果是手机手机右侧抬起绕Y轴旋转,直到与水平面垂直,角度从零变到+90。
网友对ROLL角最不理解,也没有一个统一简单地理解方法,其实以上三个角统一成一句话就是:**顺时间角度为正,逆时针为负。**要理解这句话,就是明白以下三点
- 理解手机坐标系,网友有两种坐标,其中第二种是错的,实际Android屏幕坐标是统一的,即X轴指向正东,见下图
- 角度时针方向的视角是旋