A referenciarendszer felülbírálása
Kiszámításához a helyzet a berendezés térbeli keresztül egy referencia rendszer különbözik a standard (fent leírt), a módszer alkalmazására remapCoordinateSystem SensorManager objektumot.
Korábban ebben a fejezetben a szabványos referenciakeretet úgy írta le, hogy a készülék sík felületen feküdjön, és a képernyő felfelé nézzen. Ez a megközelítés lehetővé teszi a koordinátarendszer megváltoztatását a térbeli pozíció kiszámításához. Így az a helyzet, amelynél az eszközt függőlegesen helyezik el, pihentető állapotként lehet kijelölni.
A remapCoordinateSystem módszer négy paramétert tartalmaz:
• a getRotationMatrix módszerrel nyert eredeti rotációs mátrix, ahogy korábban leírtuk;
• a végleges (átalakított)
• az újradefiniált X tengely;
• az újonnan definiált Y-tengely.
Az utolsó két paraméter egy új referenciakeret jelzésére szolgál. Ezek az értékek határozzák meg az új X és Y tengelyek eltolódását a standardokhoz képest. SensorManager osztály rendelkezik egy sor állandók, melyek segítségével adnak értéket a tengelyek: AXIS_X, AXIS_Y, AXIS_Z, AXIS_MINUS_X, AXIS_MINUS_Y és AXIS_MINUS_Z.
Listing 14,5 mutatja, hogy a referencia rendszer felülírja oly módon, hogy a nyugalmi állapotban kerül sor, amikor a készülék raspolo- Genoux függőlegesen egy portré módban a képernyő ki van kapcsolva a felhasználó (ris.14.3).

SensorManager.getRotationMatrix (R, null, aValues, mValues);
úszó [] outR = új úszó [9]; SensorManager.remapCoordinateSystem (R,
SensorManager.AXIS_X, SensorManager.AXIS_Z, outR);
// A radianok fokozatosvá alakítása.
értékek [0] = (float) Math.toDegrees (értékek [0]); értékek [1] = (float) Math.toDegrees (értékek [1]); értékek [2] = (float) Math.toDegrees (értékek [2]);