Заголовок компаса - несколько поворотов - PullRequest
0 голосов
/ 17 октября 2018

В настоящее время я создаю прототип веб-приложения, которое использует заголовок компаса в браузере.Это значение в диапазоне от 0 до 360.

Всякий раз, когда я делаю полный оборот, значение переходит с 360 обратно на 0. Я не могу понять, как я могу увеличить его с 360 до, например, 720 навторое вращение.

Какая часть математической магии мне не хватает?

Спасибо!

Это мой код

        if ('ondeviceorientationabsolute' in window) {
            window.addEventListener('deviceorientationabsolute', handleOrientationAbsolute);
        } else if ('ondeviceorientation' in window) {
            window.addEventListener('deviceorientation', handleOrientation);
        }

        function handleOrientationAbsolute(e) {
            alpha = Math.round(360 - e.alpha);
            update();
        }

        function handleOrientation(e) {
            alpha = Math.round(e.webkitCompassHeading);
            update();
        }


        function update() {
            headingEl.innerHTML =  alpha; //This value should be able to return higher than 360
        }

1 Ответ

0 голосов
/ 17 октября 2018

Я украду технику у Марио Карт.

Вокруг вашего круга есть определенные пороги.Вам нужно разделить круг как минимум на 3 группы.(Допустим, вы используете 120° баллов.) Сохраняйте, в какой группе вы находитесь (например, 0, 1 или 2), и время от времени проверяйте, в какой группе вы находитесь. Если вы меняетеот 0 до 1 или 1 и 2, просто сохраните это.Но если вы измените значение между 2 и 0, увеличьте или уменьшите счетчик.

Это позволит вам возвращать значения больше 360 °.

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