Bagikan melalui


OrientationSensor Kelas

Definisi

Mewakili sensor orientasi.

Sensor ini mengembalikan matriks rotasi dan Quaternion yang dapat digunakan untuk menyesuaikan perspektif pengguna dalam aplikasi game.

Untuk contoh implementasi, lihat sampel sensor orientasi.

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
Warisan
Object Platform::Object IInspectable OrientationSensor
Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Keterangan

Data sensor disediakan relatif terhadap sistem koordinat sensor tetap perangkat, dan tidak bergantung pada orientasi tampilan. Untuk aplikasi yang mengandalkan data sensor untuk kontrol input atau untuk memanipulasi elemen di layar, pengembang harus mempertimbangkan orientasi tampilan saat ini dan mengimbangi data dengan tepat. Untuk informasi selengkapnya tentang sistem koordinat sensor, lihat Orientasi data sensor dan tampilan.

Contoh berikut menunjukkan bagaimana aplikasi UWP yang dibangun dengan XAML dan C# menggunakan metode GetDefault untuk membuat koneksi ke sensor orientasi. Jika tidak ada sensor orientasi yang ditemukan, metode akan mengembalikan nilai null.

_sensor = OrientationSensor.GetDefault();

Contoh berikut menunjukkan bagaimana aplikasi UWP yang dibangun dengan XAML mendaftarkan penanganan aktivitas 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);
    }
}

Contoh berikut menunjukkan penanganan aktivitas 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);
    });
}

Riwayat versi

Versi Windows Versi SDK Nilai ditambahkan
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 Latensi Laporan

Properti

DeviceId

Mendapatkan pengidentifikasi perangkat.

MaxBatchSize

Mendapatkan jumlah maksimum peristiwa yang dapat di-batch oleh sensor.

MinimumReportInterval

Mendapatkan interval laporan minimum yang didukung oleh sensor.

ReadingTransform

Mendapatkan atau mengatur transformasi yang perlu diterapkan ke data sensor. Transformasi yang akan diterapkan terkait dengan orientasi tampilan untuk menyelaraskan data sensor.

ReadingType

Mendapatkan jenis pembacaan sensor.

ReportInterval

Mendapatkan atau mengatur interval laporan yang didukung oleh sensor.

ReportLatency

Mendapatkan atau mengatur penundaan antara batch informasi sensor.

Metode

FromIdAsync(String)

Secara asinkron mendapatkan sensor dari pengidentifikasinya.

GetCurrentReading()

Mendapatkan pembacaan sensor saat ini.

GetDefault()

Mengembalikan sensor orientasi default untuk pembacaan absolut.

GetDefault(SensorReadingType)

Mengembalikan sensor orientasi default, dengan mempertimbangkan preferensi akurasi.

GetDefault(SensorReadingType, SensorOptimizationGoal)

Mengembalikan sensor orientasi default, dengan mempertimbangkan preferensi daya dan akurasi.

GetDefaultForRelativeReadings()

Mengembalikan sensor orientasi default untuk pembacaan relatif.

GetDeviceSelector(SensorReadingType)

Mendapatkan pemilih perangkat.

GetDeviceSelector(SensorReadingType, SensorOptimizationGoal)

Mendapatkan pemilih perangkat.

Acara

ReadingChanged

Terjadi setiap kali sensor orientasi melaporkan pembacaan sensor baru.

Berlaku untuk

Lihat juga