OrientationSensor Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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. |