Анимация объекта с использованием данных акселерометра 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: Это было бы лучше как комментарий, потому что это не определенный ответ. К сожалению, мне не нужны необходимые привилегии.