Langue

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

Définition

Fait pivoter la matrice de rotation fournie afin qu’elle soit exprimée dans un autre système de coordonnées.

[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

Paramètres

inR
Single[]

matrice de rotation à transformer. En général, il s’agit de la matrice retournée par #getRotationMatrix.

X
Axis

définit l’axe du nouveau système de coordonnées qui coïncident avec l’axe X du système de coordonnées d’origine.

Y
Axis

définit l’axe du nouveau système de coordonnées qui coïncide avec l’axe Y du système de coordonnées d’origine.

outR
Single[]

la matrice de rotation transformée. inR et outR ne doivent pas être le même tableau.

Retours

true sur le succès. false si les paramètres d’entrée sont incorrects, par exemple si X et Y définissent le même axe. Ou si inR et outR n’ont pas la même longueur.

Attributs

Remarques

Fait pivoter la matrice de rotation fournie afin qu’elle soit exprimée dans un autre système de coordonnées. Cela est généralement utilisé lorsqu’une application doit calculer les trois angles d’orientation de l’appareil (voir #getOrientation) dans un autre système de coordonnées.

Lorsque la matrice de rotation est utilisée pour dessiner (par exemple avec OpenGL ES), elle n’a généralement <>pas besoin</b> d’être transformée par cette fonction, sauf si l’écran est physiquement pivoté, auquel cas vous pouvez utiliser android.view.Display#getRotation() Display.getRotation() pour récupérer la rotation actuelle de l’écran. Notez que, étant donné que l’utilisateur est généralement libre de faire pivoter son écran, vous devez souvent envisager la rotation pour décider des paramètres à utiliser ici.

<exemples u>:</u>

<ul><li>Utilisation de la caméra (axe Y le long de l’axe de la caméra) pour une application de réalité augmentée où les angles de rotation sont nécessaires :</li>

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

<li>Utilisation de l’appareil comme boussole mécanique lors de la rotation est android.view.Surface#ROTATION_90 Surface.ROTATION_90:</li>

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

Attention à l’exemple ci-dessus. Cet appel est nécessaire uniquement pour tenir compte d’une rotation à partir de son orientation naturelle lors du calcul des angles de rotation (voir #getOrientation). Si la matrice de rotation est également utilisée pour le rendu, elle n’a peut-être pas besoin d’être transformée, par exemple si votre android.app.Activity Activity exécution est en mode paysage. </ul>

Étant donné que le système de coordonnées résultant est orthonormal, seuls deux axes doivent être spécifiés.

Java documentation pour android.hardware.SensorManager.remapCoordinateSystem(float[], int, int, float[]).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à

Voir aussi

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