Анимация объекта с использованием данных акселерометра Android

Я использую приложение Android для потоковой передачи данных акселерометра на python script на моем ПК, который затем записывается в текстовый файл. Затем я пытаюсь использовать Javascript и jQuery для анимации 3d-кубика CSS (в форме устройства), чтобы имитировать способ перемещения устройства при потоковой передаче данных.

введите описание изображения здесь

Сначала я попробовал это, используя данные гироскопа, которые выводятся в радианах/с. Я преобразовал это значение в градусы/с, умножив значение на 57 (один радиан в градусах) или около того, но когда я попытался rotateX: 100deg, например, это привело к неустойчивому поведению при использовании этих значений для анимации.

Я хотел бы знать, как я могу анимировать объект 3D CSS, используя данные, собранные с моего акселерометра устройства Android, или это вообще возможно?

Ответ 1

С помощью WebGL вы найдете многое из того, что вам нужно в его API (для 3D-преобразования и рендеринга телефонного объекта в браузере).
Кроме того, поскольку user1561358 предлагает сократить среднего человека, почему вы используете python script для ретрансляции данных, когда вы можете открыть websocket из js в свое приложение для Android. Это также избавит вас от постоянного опроса файла.

Я хотел бы получить полное объяснение моей проблемы.

  • Приложение Android создает сокет во время запуска, информирует пользователя о его ip и порту.
  • Приложение webgl запрашивает информацию об ip: port, после отправки открывается веб-сайт.
  • если рукопожатие успешно, попросит пользователя стабилизировать телефон и синхронизировать оба конца (нажимает кнопку, чтобы телефон информировал WebGL о том, что он абсолютно горизонтальный.)
  • от синхронизации, телефон будет передавать любые изменения в 3 осях в приложение WebGL через сокет.
  • WebGL преобразует объект телефона в соответствии с полученными изменениями ориентации телефона.

Ответ 2

Немногие приходят на ум.

  • Преобразование радианов в градусы с помощью функции Python math.degrees(x)

  • Как вы установили опорный кадр? Тот факт, что устройство вращается, само по себе недостаточно. Вы также должны знать, что происходит.

  • Сократите среднего человека. Больше языков и конверсий вы используете более сложную проблему. Гораздо легче упускать из виду вещи. Рассмотрите возможность написания приложения только на одном языке и пропустите текстовый файл.

EDIT: Это было бы лучше как комментарий, потому что это не определенный ответ. К сожалению, мне не нужны необходимые привилегии.