Как я чувствую надежные углы мобильного устройства? - PullRequest
0 голосов
/ 09 марта 2019

ОБЩАЯ ИНФОРМАЦИЯ

https://lettvin.com/newBBK/orientation.html

Я написал это мобильное приложение для браузера HTML5, чтобы сообщать альфа / бета / гамму и угол портрета / ландшафта.Он также обеспечивает портретный режим визуального отображения углов.Нет проблем с этим.Не стесняйтесь "просмотреть источник" в моем приложении.Он был написан в стиле для разработчиков.Я рекомендую нажать кнопку «развернуть», чтобы перейти в полноэкранный режим и избежать помех, связанных с отображением строки местоположения.

Моя цель состоит в том, чтобы отображать трехмерные объекты, в которых вращение устройства должно вращать объект, чтобы его можно было увидеть с разных сторон.углы.

Проблема в том, что при определенных важных углах значения углов могут внезапно стать нестабильными и изменяться дико и непредсказуемо.Некоторые из этих углов являются общими положениями устройства, такими как прямой портрет или плоский на спине.Эта проблема, по-видимому, присуща событию ориентации устройства.

Я видел приложения, которые поддерживают стабильные углы для 3D-дисплеев независимо от таких неустойчивостей, как это:

https://richtr.github.io/Marine-Compass/

Я просматривал более недели, пытаясь найти достаточно простое решение для javascript, но не нашел ничего достаточно простого для адаптации.

ВОПРОС

Как получить устойчивые углы, как у этого морского пехотинцаПриложение Compass, так что я могу крутить устройство под любым углом без неустойчивости.Я не нуждаюсь в надежном северном направлении;только надежные углы поворота мобильного устройства.

КОД: (не очень актуально, но требуется)

function deviceOrientationListener(event) {
    if (typeof event.alpha === "number") {
        var angles = {
            alpha : parseInt(event.alpha),
            beta  : parseInt(event.beta ),
            gamma : parseInt(event.gamma),
            screen: screen.orientation.angle,
        };
        turnPortrait(angles);
        fillTabular (angles);
        drawGraphics(angles);
    }
}

1 Ответ

0 голосов
/ 10 марта 2019

Я решил ограничить углы обзора, чтобы избежать нестабильности.

Я буду использовать 10 <= бета <= 80 и -45 <= гамма <= 45 поддерживать перевод -90 <= b <= 90 и -90 <= c <= 90 где b и c будут использоваться для вращения трехмерного объекта. </p>

Приглашаем всех ознакомиться с приложением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...