簡體   English   中英

關於Android上X軸旋轉的問題

[英]Question about the rotation of X axis on Android

我想使用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設備上預期會發生什么。

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

注意:由於傳統原因,此傳感器類型存在,請改用getRotationMatrix()remapCoordinateSystem()getOrientation()來計算這些值。

問候
CVS @ 2600赫茲

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM