1

これは私の単純な関数です(「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まで完全に回転すると、「仮想」361ではなく0に戻ります...などは、0と360から違いがないことを理解できません。 ..。。

ホイールを時計回りと反時計回りにスムーズに回転させる方法を計算する方法がわかりません

この質問をする別の方法は次のとおりです。

objextを時計回りではなく反時計回りにたとえば15度から270度に回転させるにはどうすればよいですか?スクリプトにその値を伝えるにはどうすればよいですか?

4

2 に答える 2

2

これは私の回避策ですが、ホイールの角度 == -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);
        } 
于 2010-02-28T01:39:42.673 に答える
0

繰り返しますが、これを行う方法の例を次に示します: http://gutfullofbeer.net/compass.html

于 2010-02-27T23:36:00.200 に答える