【问题标题】:Question about the rotation of X axis on Android关于安卓X轴旋转的问题
【发布时间】:2011-03-17 23:30:53
【问题描述】:

我想使用 Android 传感器检测绕 X 轴的正确旋转。谷歌搜索后,我找到了这段代码:

   public void onSensorChanged(SensorEvent event) {
   Sensor sensor = event.sensor;
   switch(sensor.getType()) {
   case Sensor.TYPE_ACCELEROMETER:
    mAcc = event.values.clone();
    break;
   case Sensor.TYPE_MAGNETIC_FIELD:
    mMag = event.values.clone();
    break;
   }
   if (mAcc == null || mMag == null) return;

   float R[] = new float[9];
   if (SensorManager.getRotationMatrix(R, null, mAcc, mMag)) {
    SensorManager.getOrientation(R, mOrientation);
   }
  }

mOrientation[1] 表示围绕 X 轴的弧度。但是,该值非常奇怪。

  1. 当手机平放在桌子上时,它是 0。
  2. 当手机头部指向地面时,为 PI/2。
  3. 当手机平底朝上放在桌子上时,它又是 0。
  4. 当手机头指向天空时,它-PI/2。

1,2 之间的状态与 2,3 之间的状态具有相同的旋转值。我怎么知道我的手机处于哪个状态?

【问题讨论】:

    标签: android sensors


    【解决方案1】:

    请验证您的读数。

    您报告的标志和范围完全不同步
    android 设备上的预期。

    developer.android.com/reference/android/hardware/Sensor.html#TYPE_ORIENTATION

    注意:此传感器类型由于遗留原因而存在,请结合 remapCoordinateSystem()getOrientation() 使用 getRotationMatrix() 来而是计算这些值。

    问候
    CVS@2600Hertz

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多