OrientationSensor Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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. |