OrientationSensor Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um sensor de orientação.
Esse sensor retorna uma matriz de rotação e um Quaternion que podem ser usados para ajustar a perspectiva do usuário em um aplicativo de jogo.
Para obter um exemplo de implementação, consulte o exemplo de sensor de orientação.
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
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Comentários
Os dados do sensor são fornecidos em relação ao sistema de coordenadas de sensor fixo do dispositivo e são independentes da orientação de exibição. Para aplicativos que dependem de dados de sensor para controle de entrada ou para manipular elementos na tela, o desenvolvedor deve levar em conta a orientação de exibição atual e compensar os dados adequadamente. Para obter mais informações sobre o sistema de coordenadas do sensor, consulte Dados do sensor e orientação de exibição.
O exemplo a seguir demonstra como um aplicativo UWP criado com XAML e C# usa o método GetDefault para estabelecer uma conexão com um sensor de orientação. Se nenhum sensor de orientação for encontrado, o método retornará um valor nulo.
_sensor = OrientationSensor.GetDefault();
O exemplo a seguir demonstra como um aplicativo UWP criado com XAML registra um manipulador de eventos 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);
}
}
O exemplo a seguir mostra o manipulador de eventos 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);
});
}
Histórico de versão
Versão do Windows | Versão do SDK | Valor adicionado |
---|---|---|
1607 | 14393 | GetDefault(SensorReadingType) |
1607 | 14393 | GetDefault(SensorReadingType,SensorOptimizationGoal) |
1.709 | 16299 | FromIdAsync |
1.709 | 16299 | GetDeviceSelector(SensorReadingType) |
1.709 | 16299 | GetDeviceSelector(SensorReadingType,SensorOptimizationGoal) |
1.709 | 16299 | MaxBatchSize |
1.709 | 16299 | ReportLatency |
Propriedades
DeviceId |
Obtém o identificador do dispositivo. |
MaxBatchSize |
Obtém o número máximo de eventos que podem ser agrupados em lote pelo sensor. |
MinimumReportInterval |
Obtém o intervalo mínimo de relatório com suporte pelo sensor. |
ReadingTransform |
Obtém ou define a transformação que precisa ser aplicada aos dados do sensor. As transformações a serem aplicadas estão vinculadas à orientação de exibição com a qual alinhar os dados do sensor. |
ReadingType |
Obtém o tipo de leitura do sensor. |
ReportInterval |
Obtém ou define o intervalo de relatório com suporte pelo sensor. |
ReportLatency |
Obtém ou define o atraso entre lotes de informações do sensor. |
Métodos
FromIdAsync(String) |
Obtém de forma assíncrona o sensor de seu identificador. |
GetCurrentReading() |
Obtém a leitura do sensor atual. |
GetDefault() |
Retorna o sensor de orientação padrão para leituras absolutas. |
GetDefault(SensorReadingType) |
Retorna o sensor de orientação padrão, levando em conta as preferências de precisão. |
GetDefault(SensorReadingType, SensorOptimizationGoal) |
Retorna o sensor de orientação padrão, levando em conta as preferências de energia e precisão. |
GetDefaultForRelativeReadings() |
Retorna o sensor de orientação padrão para leituras relativas. |
GetDeviceSelector(SensorReadingType) |
Obtém o seletor de dispositivo. |
GetDeviceSelector(SensorReadingType, SensorOptimizationGoal) |
Obtém o seletor de dispositivo. |
Eventos
ReadingChanged |
Ocorre sempre que o sensor de orientação relata uma nova leitura do sensor. |