3

私はこれらの2行のコードを理解しようとしています

SensorManager.getRotationMatrix(RTmp, I, grav, mag); 
SensorManager.remapCoordinateSystem(RTmp, SensorManager.AXIS_X,SensorManager.AXIS_MINUS_Z, Rot);

のドキュメントremapCoordinateSystem()を読みましたが、道に迷っています。

誰かが私に正確に何を説明し、何をすることができますgetRotationMatrixremapCoordinateSystem? 特にSensorManager.AXIS_X, SensorManager.AXIS_MINUS_Z?

4

3 に答える 3

3

「ワールド」から「デバイス」ではなく、 Androidのドキュメントに記載されているように、デバイス座標ワールド座標getRotationMatrix()に変換する回転行列を返すと思います。

傾斜行列 I と回転行列 R を計算し、ベクトルをデバイス座標系から 直接正規直交基底として定義されるワールド座標系に変換します。ここで、

于 2011-07-25T19:46:29.587 に答える
1

の機能はgetRotationMatrix()@Nonameによって明確に説明されたと思います。remapCoordinateSystem()と を考慮してSensorManager.AXIS_X、2 番目と 3 番目の質問に答えようとしていますSensorManager.AXIS_MINUS_Z。 CoordinateSystem を実際に変更し、新しい X、Y、Z 軸を設定します。ここで

、は携帯電話の座標系です。あなたのコードから、縦向きで拡張現実を行っていると思います。そのため、Y 軸を FYI に設定します。横向きで同じことをしたい場合は、座標系を次のように設定します。remapCoordinateSystem()SensorManager.AXIS_XSensorManager.AXIS_MINUS_ZSensorManager.AXIS_MINUS_Z

SensorManager.remapCoordinateSystem(RTmp, SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, Rot);

これが役立つことを願っています。

于 2012-11-14T14:37:18.560 に答える
0

このような質問を文脈から完全に切り離して行うのは、一般的に答えにくいものです。また、フォーマットに慣れる必要があります (例: 4 つのスペースはコードを示します)。

SensorManager.getRotationMatrix(RTmp, I, grav, mag);
SensorManager.remapCoordinateSystem(RTmp, SensorManager.AXIS_X,SensorManager.AXIS_MINUS_Z, Rot);

でも:

ドキュメントを使用して正しい軌道に乗っていると言えます。ご覧のとおり、getRotationMatrix は、「ワールド座標系」を現在のデバイス座標系に変換するために必要な現在の回転行列を取得します。さらに、remapcoordinateSystem は、指定された座標系を指定された回転マトリックスに従って変換します。しかし、上で述べたように、コンテキストから外して、なぜ誰かがこれを行っているのかを伝えるのは困難です。

于 2011-02-28T14:04:15.803 に答える