android 横滚的折线图_Android SensorManager.getOrientation()返回-PI / 2和P...

我设计的应用程序需要检查设备的方向(方位角,俯仰和滚动).我使用以下代码实现此目的:

@Override

public void onSensorChanged(SensorEvent event) {

if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)

gravityMatrix = event.values.clone();// Fill gravityMatrix with accelerometer values

else if(event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)

geomagneticMatrix = event.values.clone();// Fill geomagneticMatrix with magnetic-field sensor values

if(gravityMatrix != null && geomagneticMatrix != null){

RMatrix = new float[16];

IMatrix = new float[16];

SensorManager.getRotationMatrix(RMatrix, IMatrix, gravityMatrix, geomagneticMatrix);// Retrieve RMatrix, necessary for the getOrientation method

SensorManager.getOrientation(RMatrix, orientation);// Get the current orientation of the device

}

}

现在,我可以从“方向” float []中获得方位角,俯仰和横滚值.方位角和侧倾值一切都很好(它返回正确的角度),但是当我打印音高值(orientation [1])时,我总是获取PI / 2和-PI / 2之间的角度.我不明白为什么?我无法获取大于PI / 2或小于-PI / 2的角度.一旦我的角度为-PI / 2,并且继续旋转设备(三星Galaxy S2),该角度在达到PI / 2值后突然减小.

谁能解释为什么俯仰角如此罕见?

提前致谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值