Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 罗盘航向-多次旋转_Javascript_Math_Compass - Fatal编程技术网

Javascript 罗盘航向-多次旋转

Javascript 罗盘航向-多次旋转,javascript,math,compass,Javascript,Math,Compass,我目前正在制作一个web应用程序的原型,该应用程序在浏览器中使用指南针航向。这是一个介于0到360之间的值 每当我进行完全旋转时,该值从360跳回到0。 我不知道如何在第二次旋转时将其从360增加到例如720 我错过了什么数学魔术 谢谢 这是我的密码 if ('ondeviceorientationabsolute' in window) { window.addEventListener('deviceorientationabsolute', hand

我目前正在制作一个web应用程序的原型,该应用程序在浏览器中使用指南针航向。这是一个介于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
        }

我要从马里奥卡丁车那里偷一种技术

在你的圈子里,有一些门槛。您需要将圆分成至少3组。(假设您正在使用
120°
点)存储您所在的组(例如
0
1
2
),并经常检查您所在的组。如果您在
0
1
之间切换,或者在
1
2
之间切换,只需将其存储即可。但如果在
2
0
之间切换,则递增或递减计数器


这将允许您返回大于360°的值。

哦,这实际上是有道理的。我到办公室后会试试这个。请问在哪里可以找到马里奥卡丁车?我非常感兴趣@任天堂游戏机上的MichaelKoelewijn。如果你穿过墙壁,很明显发生了什么。