Frage

Das ist meine einfache Funktion ( 'mycompass' ist ein div in meinem Körper)

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);
}

aus irgendeinem Grunde, wenn der Kompass ‚Rad‘ hat eine vollständige Umdrehung 0-360 es wieder auf 0 und nicht auf den „virtuellen“ geht 361 ... etc .. ist nicht in der Lage zu verstehen, dass von 0 und 360 gibt kein Unterschied ...

, und ich weiß nicht, wie man eine Art und Weise zu berechnen, das Rad spining hat Smoothy im Uhrzeigersinn und gegen den Uhrzeigersinn

ein anderer Weg, um diese Frage zu stellen ist:

Wie kann ich meine drehen objext aus, zum Beispiel von 15deg bis 270deg, in Richtung gegen den Uhrzeigersinn statt im Uhrzeigersinn? wie kann ich mein Skript, das vale sagen?

War es hilfreich?

Lösung

das ist mein Problem umgehen, aber ich STIL Problem hat, wenn das Rad Grad == -360 oder 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);
        } 

Andere Tipps

Auch hier ist ein Beispiel dafür, wie dies zu tun: http://gutfullofbeer.net/compass.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top