Lingua

SensorManager.RemapCoordinateSystem(Single[], Axis, Axis, Single[]) Metodo

Definizione

Ruota la matrice di rotazione fornita in modo che venga espressa in un sistema di coordinate diverso.

[Android.Runtime.Register("remapCoordinateSystem", "([FII[F)Z", "")]
public static bool RemapCoordinateSystem(float[]? inR, Android.Hardware.Axis X, Android.Hardware.Axis Y, float[]? outR);
[<Android.Runtime.Register("remapCoordinateSystem", "([FII[F)Z", "")>]
static member RemapCoordinateSystem : single[] * Android.Hardware.Axis * Android.Hardware.Axis * single[] -> bool

Parametri

inR
Single[]

matrice di rotazione da trasformare. In genere è la matrice restituita da #getRotationMatrix.

X
Axis

definisce l'asse del nuovo sistema di coordinate che coincide con l'asse X del sistema di coordinate originale.

Y
Axis

definisce l'asse del nuovo sistema di coordinate che coincide con l'asse Y del sistema di coordinate originale.

outR
Single[]

matrice di rotazione trasformata. inR e outR non devono essere la stessa matrice.

Valori restituiti

true in caso di esito positivo. false se i parametri di input non sono corretti, ad esempio se X e Y definiscono lo stesso asse. Oppure se inR e outR non hanno la stessa lunghezza.

Attributi

Commenti

Ruota la matrice di rotazione fornita in modo che venga espressa in un sistema di coordinate diverso. Questo viene in genere usato quando un'applicazione deve calcolare i tre angoli di orientamento del dispositivo (vedere #getOrientation) in un sistema di coordinate diverso.

Quando la matrice di rotazione viene usata per il disegno (ad esempio con OpenGL ES), in genere <b>non è necessario</b> per essere trasformata da questa funzione, a meno che lo schermo non venga ruotato fisicamente, nel qual caso è possibile usare android.view.Display#getRotation() Display.getRotation() per recuperare la rotazione corrente dello schermo. Si noti che poiché l'utente è in genere libero di ruotare lo schermo, spesso è consigliabile considerare la rotazione nel decidere i parametri da usare qui.

<u>Examples:</u>

<ul><li>Uso della fotocamera (asse Y lungo l'asse della fotocamera) per un'applicazione di realtà aumentata in cui sono necessari gli angoli di rotazione:</li>

<ul>remapCoordinateSystem(inR, AXIS_X, AXIS_Z, outR);</ul>

<li>Uso del dispositivo come bussola meccanica quando la rotazione è android.view.Surface#ROTATION_90 Surface.ROTATION_90:</li>

<ul>remapCoordinateSystem(inR, AXIS_Y, AXIS_MINUS_X, outR);</ul>

Tenere presente l'esempio precedente. Questa chiamata è necessaria solo per tenere conto di una rotazione dall'orientamento naturale quando si calcolano gli angoli di rotazione (vedere #getOrientation). Se per il rendering viene usata anche la matrice di rotazione, potrebbe non essere necessario trasformarla, ad esempio se android.app.Activity Activity è in esecuzione in modalità orizzontale. </ul>

Poiché il sistema di coordinate risultante è ortonormaale, è necessario specificare solo due assi.

per android.hardware.SensorManager.remapCoordinateSystem(float[], int, int, float[]).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

Vedi anche

  • <xref:Android.Hardware.SensorManager.GetRotationMatrix(System.Single%5b%5d%2c+System.Single%5b%5d%2c+System.Single%5b%5d%2c+System.Single%5b%5d)>