2010-02-27 3 views
1

이 내 간단한 함수 나침반 '휠'에 0에서 완전한 회전을 수행 어떤 이유로회전 웹킷 문제 나침반처럼 회전 할 때

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

('mycompass는'내 몸의 사업부이다)이다 360은 0으로 돌아가고 "가상"361 ... 등이 아닙니다. 0과 360에서 차이가 없다는 것을 이해할 수 없습니다 ...

나는 어떻게 계산해야할지 모르겠다. 바퀴가 시계 방향과 반 시계 방향으로 원활하게 회전하는 방법

다른 방법으로이 큐를 넣을 수 있습니다. stion :

시계 방향으로 시계 반대 방향으로 예를 들어 15도에서 270도까지 objext를 어떻게 회전시킬 수 있습니까? 내 대본에 그 발레를 어떻게 말할 수 있니?

+0

당신은 이미이 물었을 때 내가 STIL 문제가 질문을하고, 나는 이미 대답했다. 더 많은 코드를 게시해야합니다. 당신은 "네비게이터", "나침반", "watchHeading"함수 등을 생략했습니다. 이것은 실제로 자바 스크립트 질문이 아니며 단순한 모듈로 산술에 관한 것입니다. – Pointy

+0

아무도 정말이 문제를 해결할 수 있다는 것이 놀랍습니다. 이 예제에서 – Francesco

+0

을 클릭하면 첫 번째 전자 메일을 클릭 한 다음 S 단순한 내용을 수행합니다. – Francesco

답변

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

다시 말하지만, 여기에이 작업을 수행하는 방법의 예입니다 http://gutfullofbeer.net/compass.html

+0

나는이 나침반이 벙어리 광고가 2 점 사이의 가장 짧은 길이를 인식하지 못하기 때문에 올바른 예가 아니라고 생각한다. 단순히 "A에서 B로 clokwise로 이동하거나 B에서 뒤로 이동하는 것이 더 짧다"라는 질문없이 A에서 B로 간다. " 마치 진짜 나침반 – Francesco