Lenguaje

SensorManager.RemapCoordinateSystem(Single[], Axis, Axis, Single[]) Método

Definición

Gira la matriz de rotación proporcionada para que se exprese en un sistema de coordenadas diferente.

[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

Parámetros

inR
Single[]

matriz de rotación que se va a transformar. Normalmente es la matriz devuelta por #getRotationMatrix.

X
Axis

define el eje del nuevo sistema de coordenadas que coincide con el eje X del sistema de coordenadas original.

Y
Axis

define el eje del nuevo sistema de coordenadas que coincide con el eje Y del sistema de coordenadas original.

outR
Single[]

matriz de rotación transformada. inR y outR no deben ser la misma matriz.

Devoluciones

true si se ha realizado correctamente. false si los parámetros de entrada son incorrectos, por ejemplo, si X e Y definen el mismo eje. O bien, si inR y outR no tienen la misma longitud.

Atributos

Comentarios

Gira la matriz de rotación proporcionada para que se exprese en un sistema de coordenadas diferente. Normalmente se usa cuando una aplicación necesita calcular los tres ángulos de orientación del dispositivo (vea #getOrientation) en un sistema de coordenadas diferente.

Cuando la matriz de rotación se usa para dibujar (por ejemplo, con OpenGL ES), normalmente <b>no necesita</b> transformarse mediante esta función, a menos que la pantalla se gire físicamente, en cuyo caso puede usarse android.view.Display#getRotation() Display.getRotation() para recuperar la rotación actual de la pantalla. Tenga en cuenta que, dado que el usuario es generalmente libre de girar su pantalla, a menudo debe considerar la rotación para decidir los parámetros que se usarán aquí.

<u>Examples:</u>

<ul><li>Usando la cámara (eje Y a lo largo del eje de la cámara) para una aplicación de realidad aumentada donde se necesitan los ángulos de rotación:</li>

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

<li>Usar el dispositivo como brújula mecánica cuando la rotación es android.view.Surface#ROTATION_90 Surface.ROTATION_90:</li>

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

Tenga cuidado con el ejemplo anterior. Esta llamada solo es necesaria para tener en cuenta una rotación desde su orientación natural al calcular los ángulos de rotación (vea #getOrientation). Si la matriz de rotación también se usa para la representación, es posible que no sea necesario transformarla, por ejemplo, si android.app.Activity Activity se ejecuta en modo horizontal. </ul>

Dado que el sistema de coordenadas resultante es ortonormal, solo es necesario especificar dos ejes.

Java documentación para android.hardware.SensorManager.remapCoordinateSystem(float[], int, int, float[]).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a

Consulte también

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