OrientationSensor Class

Представляет датчик положения в пространстве.

Этот датчик возвращает матрицу поворота и кватернион, которые можно использовать для корректировки точки зрения пользователя в игровом приложении.

Синтаксис


public sealed class OrientationSensor

Атрибуты

[DualApiPartition()]
[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]

Члены

OrientationSensorКласс имеет следующие типы членов:

События

OrientationSensorКласс имеет эти события.

СобытиеОписание
ReadingChanged Occurs each time the orientation sensor reports a new sensor reading.

 

Методы

The OrientationSensor Класс имеет следующие методы. В C#, Visual Basic и C++ также наследует методы от Object Класс.

МетодОписание
GetCurrentReading Gets the current sensor reading
GetDefault Gets the default orientation sensor.

 

Свойства

OrientationSensorКласс имеет следующие свойства.

СвойствоТип доступаОписание

MinimumReportInterval

Только для чтенияGets the minimum report interval supported by the sensor.

ReportInterval

Чтение и записьGets or sets the report interval supported by the sensor.

 

Примечания

В следующем примере демонстрируется, как в приложении Магазина Windows на языке XAML и C# используется метод GetDefault для установления подключения к датчику положения в пространстве. Если датчик ориентации не найден, метод возвращает значение NULL.


_sensor = OrientationSensor.GetDefault();


В следующем примере демонстрируется, как приложение Магазина Windows на языке XAML регистрирует обработчик событий 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);
    }
}


В следующем примере показан обработчик событий 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);
    });
}


Требования

Минимальный поддерживаемый клиент

Windows 8 [Приложения для Магазина Windows, классические приложения]

Минимальный поддерживаемый сервер

Не поддерживается [Приложения для Магазина Windows, классические приложения]

Минимальный поддерживаемый телефон

Windows Phone 8

Пространство имен

Windows.Devices.Sensors
Windows::Devices::Sensors [C++]

Metadata

Windows.winmd

См. также

Краткое руководство по OrientationSensor
Пример OrientationSensor

 

 

Показ:
© 2014 Microsoft