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).

A referenciarendszer felülbírálása

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]);




Kapcsolódó cikkek