【问题标题】:Rotation webkit problem when spinning like a compass像指南针一样旋转时出现旋转 webkit 问题
【发布时间】:2010-02-27 21:57:22
【问题描述】:

这是我的简单函数('mycompass' 是我体内的一个 div)

function watchCompass() {

    var suc = function(a){       
        var r =a.magneticHeading;  
        document.getElementById('mycompass').style.webkitTransform  = "rotateZ("+-r+"deg)";  
    };
    var fail = function(){};
    var opt = {};
    opt.frequency = 50;
    timer = navigator.compass.watchHeading(suc,fail,opt);
}

由于某种原因,当指南针“轮”从 0 到 360 进行完整旋转时,它会回到 0 而不是“虚拟”361 ......等等。从 0 到 360 无法理解没区别……

我不知道如何计算让车轮顺时针和逆时针顺畅旋转的方法

提出这个问题的另一种方式是:

我怎样才能将我的对象从例如 15 度旋转到 270 度,逆时针方向而不是顺时针方向?我怎样才能告诉我的脚本这个值?

【问题讨论】:

  • 这个问题你已经问过了,我已经给你答案了。您将不得不发布更多代码;你已经忽略了“导航器”、“指南针”、“watchHeading”函数等。这不是一个真正的 Javascript 问题,它更多的是关于简单的模运算。
  • 我一直在问,因为我很惊讶没有人能真正解决这个问题。
  • 在这个例子中,如果你先按顺时针的 E,然后按 S,它就完成了 sript 的工作。
  • 你已经问过这个问题了:stackoverflow.com/questions/2348185/…。多次问同一个问题只会产生噪音。如果您想为上一个问题提供更多信息,只需对其进行编辑。
  • 解决不了。我可以,而且做到了。如果你不知道如何在你面前有一个完整的例子来做模运算,那么,祝你生活愉快,祝你好运。

标签: javascript webkit compass-geolocation


【解决方案1】:

这是我的解决方法,但当车轮度数 == -360 或 360 时我仍然遇到问题

var angle = 0;
var lastAngle = 0;




   function watchCompass() {

          var suc = function(a){
          var angle = roundNyc(a.magneticHeading);

       l1 = angle -  lastAngle;
       l2 = 360 - l1;

      if( Math.abs(l1) >=  Math.abs(l2)){ 

       r =   (lastAngle - l2) ; 

      }else{

       r =  angle ; 

      }    

       lastAngle = r;     
       l1 = 0;
       l2 = 0;

   document.getElementById('mycompass').style.webkitTransform = 'rotateZ(' + -r + 'deg)';

          };
          var fail = function(){};
          var opt = {};
          opt.frequency = 50;
          timer = navigator.compass.watchHeading(suc,fail,opt);
        } 

【讨论】:

    【解决方案2】:

    再次,这里是一个如何做到这一点的例子:http://gutfullofbeer.net/compass.html

    【讨论】:

    • 我仍然不认为这是正确的例子,因为这个指南针是愚蠢的广告不识别两点之间的最短长度,它只是从 A 到 B 而没有询问“从 A 到 B 更短顺时针还是从 B 往后走?”像一个真正的指南针
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多