Partager via


OrientationSensor Classe

Définition

Représente un capteur d’orientation.

Ce capteur retourne une matrice de rotation et un Quaternion qui peuvent être utilisés pour ajuster la perspective de l’utilisateur dans une application de jeu.

Pour obtenir un exemple d’implémentation, consultez l’exemple de capteur d’orientation.

public ref class OrientationSensor sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class OrientationSensor final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class OrientationSensor
Public NotInheritable Class OrientationSensor
Héritage
Object Platform::Object IInspectable OrientationSensor
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Remarques

Les données du capteur sont fournies par rapport au système de coordonnées fixes du capteur de l’appareil et sont indépendantes de l’orientation de l’affichage. Pour les applications qui s’appuient sur des données de capteur pour le contrôle d’entrée ou pour manipuler des éléments à l’écran, le développeur doit prendre en compte l’orientation actuelle de l’affichage et compenser les données de manière appropriée. Pour plus d’informations sur le système de coordonnées du capteur, consultez Données du capteur et orientation de l’affichage.

L’exemple suivant montre comment une application UWP créée avec XAML et C# utilise la méthode GetDefault pour établir une connexion à un capteur d’orientation. Si aucun capteur d’orientation n’est trouvé, la méthode retourne une valeur null.

_sensor = OrientationSensor.GetDefault();

L’exemple suivant montre comment une application UWP créée avec XAML inscrit un gestionnaire d’événements ReadingChanged .

private void ScenarioEnable(object sender, RoutedEventArgs e)
{
    if (_sensor != null)
    {
        // Establish the report interval
        _sensor.ReportInterval = _desiredReportInterval;

        Window.Current.VisibilityChanged += new WindowVisibilityChangedEventHandler(VisibilityChanged);
        _sensor.ReadingChanged += new TypedEventHandler<OrientationSensor, OrientationSensorReadingChangedEventArgs>(ReadingChanged);

        ScenarioEnableButton.IsEnabled = false;
        ScenarioDisableButton.IsEnabled = true;
    }
    else
    {
        rootPage.NotifyUser("No orientation sensor found", NotifyType.StatusMessage);
    }
}

L’exemple suivant montre le gestionnaire d’événements ReadingChanged .

async private void ReadingChanged(object sender, OrientationSensorReadingChangedEventArgs e)
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        OrientationSensorReading reading = e.Reading;

        // Quaternion values
        SensorQuaternion quaternion = reading.Quaternion;   // get a reference to the object to avoid re-creating it for each access
        ScenarioOutput_X.Text = String.Format("{0,8:0.00000}", quaternion.X);
        ScenarioOutput_Y.Text = String.Format("{0,8:0.00000}", quaternion.Y);
        ScenarioOutput_Z.Text = String.Format("{0,8:0.00000}", quaternion.Z);
        ScenarioOutput_W.Text = String.Format("{0,8:0.00000}", quaternion.W);

        // Rotation Matrix values
        SensorRotationMatrix rotationMatrix = reading.RotationMatrix;
        ScenarioOutput_M11.Text = String.Format("{0,8:0.00000}", rotationMatrix.M11);
        ScenarioOutput_M12.Text = String.Format("{0,8:0.00000}", rotationMatrix.M12);
        ScenarioOutput_M13.Text = String.Format("{0,8:0.00000}", rotationMatrix.M13);
        ScenarioOutput_M21.Text = String.Format("{0,8:0.00000}", rotationMatrix.M21);
        ScenarioOutput_M22.Text = String.Format("{0,8:0.00000}", rotationMatrix.M22);
        ScenarioOutput_M23.Text = String.Format("{0,8:0.00000}", rotationMatrix.M23);
        ScenarioOutput_M31.Text = String.Format("{0,8:0.00000}", rotationMatrix.M31);
        ScenarioOutput_M32.Text = String.Format("{0,8:0.00000}", rotationMatrix.M32);
        ScenarioOutput_M33.Text = String.Format("{0,8:0.00000}", rotationMatrix.M33);
    });
}

Historique des versions

Version de Windows Version du SDK Valeur ajoutée
1607 14393 GetDefault(SensorReadingType)
1607 14393 GetDefault(SensorReadingType,SensorOptimizationGoal)
1709 16299 FromIdAsync
1709 16299 GetDeviceSelector(SensorReadingType)
1709 16299 GetDeviceSelector(SensorReadingType,SensorOptimizationGoal)
1709 16299 MaxBatchSize
1709 16299 ReportLatency

Propriétés

DeviceId

Obtient l’identificateur de l’appareil.

MaxBatchSize

Obtient le nombre maximal d’événements pouvant être traités par lot par le capteur.

MinimumReportInterval

Obtient l’intervalle de rapport minimal pris en charge par le capteur.

ReadingTransform

Obtient ou définit la transformation qui doit être appliquée aux données du capteur. Les transformations à appliquer sont liées à l’orientation d’affichage avec laquelle aligner les données du capteur.

ReadingType

Obtient le type de lecture du capteur.

ReportInterval

Obtient ou définit l’intervalle de rapport pris en charge par le capteur.

ReportLatency

Obtient ou définit le délai entre les lots d’informations du capteur.

Méthodes

FromIdAsync(String)

Obtient de manière asynchrone le capteur à partir de son identificateur.

GetCurrentReading()

Obtient la lecture actuelle du capteur.

GetDefault()

Retourne le capteur d’orientation par défaut pour les lectures absolues.

GetDefault(SensorReadingType)

Retourne le capteur d’orientation par défaut, en tenant compte des préférences de précision.

GetDefault(SensorReadingType, SensorOptimizationGoal)

Retourne le capteur d’orientation par défaut, en tenant compte des préférences d’alimentation et de précision.

GetDefaultForRelativeReadings()

Retourne le capteur d’orientation par défaut pour les lectures relatives.

GetDeviceSelector(SensorReadingType)

Obtient le sélecteur d’appareil.

GetDeviceSelector(SensorReadingType, SensorOptimizationGoal)

Obtient le sélecteur d’appareil.

Événements

ReadingChanged

Se produit chaque fois que le capteur d’orientation signale une nouvelle lecture de capteur.

S’applique à

Voir aussi