エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

OrientationSensor Class

方位センサーを表します。

このセンサーは、ゲーム アプリケーションでのユーザーの視点を調節するために使用できる、回転行列と四元数を返します。

構文


Public NotInheritable 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 クラス には次のメソッドがあります。 With 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.

 

解説

XAML および C# を使って構築した Windows ストア アプリが、GetDefault メソッドを使用して方位センサーへの接続を確立する方法を次の例に示します。方位センサーが検出されない場合、メソッドは null 値を返します。


_sensor = OrientationSensor.GetDefault();


XAML でビルドされた Windows ストア アプリケーションが 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++]

メタデータ

Windows.winmd

参照

OrientationSensor クイック スタート
OrientationSensor サンプル

 

 

表示:
© 2014 Microsoft