Я пытаюсь определить, когда устройство полностью вращается вокруг своей оси X с помощью Dart и акселерометра мобильного устройства.
Это моя идея, как реализовать это:
получить положение оси X
сохранить значение
Всегда, когда позиция меняется, я добавляю новую позицию к сохраненному мной значению (индексу).Таким образом, у меня есть положительные числа для левого вращения и отрицательные для правого вращения.Когда телефон "лицом вниз", индекс равен нулю, а следующее значение должно быть отрицательным или положительным, в зависимости от направления вращения телефона.
Это то, что я уже сделал:
accelerometerEvents.listen((AccelerometerEvent event) {
var rounded = event.x.round();
var oldPosition = xPosition;
var countX = 0;
if (xPosition != null) {
if (oldPosition != rounded) {
if (rounded.isNegative) {
/* right rotation */
} else {
/* left rotation */
if (rounded > oldPosition) {
countX = rotationIndex + rounded;
} else {
countX = rotationIndex - rounded;
}
}
setState(() {
x = rounded.toString();
xPosition = rounded;
rotationIndex = countX;
});
}
} else {
setState(() {
xPosition = rounded;
});
}
});
Но сейчас я застрял в этой идее и понятия не имею, можно ли все дела сделать с помощью акселерометра.Это правильный способ или есть другое решение / датчик, который я должен использовать для определения полного вращения мобильного телефона.
Спасибо за помощь:)