Как получить наклон
Android Смартфона в градусах (Относительно любого фиксированного положения)?
Я нашел
следующую статью про гироскоп, объясняющую как считывать с него угловую скорость, и написал следующий код, который должен суммируя угловую скорость устройства получать его наклон:
public float AngularVelocityX;
public float AngularVelocityY;
public float AngularVelocityZ;
public ValueShowViewModel()
{
Gyroscope.Start(SensorSpeed.UI);
Gyroscope.ReadingChanged += Gyroscope_ReadingChanged;
}
void Gyroscope_ReadingChanged(object sender, GyroscopeChangedEventArgs e)
{
var data = e.Reading;
AngularVelocityX += data.AngularVelocity.X;
AngularVelocityY += data.AngularVelocity.Y;
AngularVelocityZ += data.AngularVelocity.Z;
}
Однако, чем больше времени работает приложение, тем больше накапливается неточность в хранящих сумму переменных
AngularVelocity, и это доходит до полного их несоответствия с измеренным ранее в этом же положении углам.
То же самое пытался проделать с акселерометром, однако его значения не реагировали на изменение поворота только по горизонтали.
Есть ли способ с помощью
C# получить наклон
Android устройства?